之前弄了前端的图片上传与下载,但是做后端的时候还是需要放在后端来处理比较好,话不多说直接上代码
上传
这里的R.success是我自定义的返回类型的方式,只需要返回给前端文件名就行
static String originalFilename;
static String basePath;
@PostMapping("/upload")
//只需要返回上传文件的名称
public R<String> upLoad(MultipartFile file){
log.info(file.toString());
originalFilename="";
basePath="";
originalFilename = file.getOriginalFilename(); //文件名
//UUid防止文件名的覆盖
String s = UUID.randomUUID().toString();
originalFilename=chageString(s);
basePath="D:\\"+"imag\\"; //自定义存放路径
try {
//文件的创建
File file1=new File(basePath);
if(!file1.exists()){ //如果不存在该路径下的文件
file1.mkdirs();
//文件的转存
file.transferTo(new File(basePath+originalFilename));
}catch (Exception e){
e.getMessage();
return R.success(originalFilename);
public static String chageString(String s){ //处理图片名的前缀
String[] split = originalFilename.split(".");
return s+"."+split[1];
下载
/**
* 文件的下载--已输出流的方式进行下载
* 可以通过response获得输出流的方式
* @Param name--为上传函数中返回到前端的 /*文件名称*/
@GetMapping("/download/{name}")
public void downLoad (@PathVariable("name") String name, HttpServletResponse response) throws IOException{
//输入流--换为流的方式来读取文件的内容,从磁盘输入到内存中;从文件系统中的文件获取输入字节。
FileInputStream fileInputStream=new FileInputStream(basePath+name);
//输出流--文件从内存输出到磁盘中,将文件写回浏览器,并实现展示
ServletOutputStream outputStream = response.getOutputStream();//获取输出流的方式
byte[] bytes=new byte[1024];
int len=0;
response.setContentType("image/jpeg");///设置一下输出的数据类型,我这里设置的是jpeg
while ((len=fileInputStream.read(bytes))!=-1){
outputStream.write(bytes,0,len+1);
outputStream.flush();
outputStream.close();
fileInputStream.close();
在做该功能的时候,无论的是前端实现还是后端实现,应该是要根据自己项目的情况来定,当然我们得首先要学会这两种的实现方式。
目前还在学习阶段,有什么问题可以提出,一起学习!
前几天有个小伙伴找我,他在项目中想让一个视频文件点击下载时不是弹出新页面,而是提示下载,问我咋整。其实,解决办法很简单,就是在后端设置Content-Type为application/octet-stream,因为也不是一个小伙伴问过我这问题了,所以写个DEMO给大家参考参考
素材:https://raw.
## 需求
项目要求为每一个阿里云大客户每周生成一份周报,周报内容包括各类云产品(如ECS/SLB/RDS/CDN)使用情况。我们知道通过前端js可以将highcharts曲线图/饼图等转换成图片格式,但是只能在线convert,也就是图片需要上传到highcharts服务器,数据安全肯定无法保证,所以本文借助phantomjs这个利器来直接通过服务端生成图片
## highcharts配
<div class="markdown_views">
<h1 id="android高效率编码-第三方sdk详解系列二bmob后端云开发实现登录注册更改资料修改密码邮箱验证上传下载推送消息缩略图加载等功能">Android高效率编码-第三方SDK详解系列(二)——Bmob后端云开发,实现登录注册,更改资料,修改密码,邮箱验证,上传,下载,推送消息,缩略图加载等功能</h1>
现在有一个需求,前端需要同步服务器的时间,因为前端的时间是不可靠的,解决方案有很多,但是不管什么方案,都是需要和服务端进行交互,那么怎么减轻后端的工作量直接实现呢?
很多计算机专业大学生经常和我交流:毕业设计没思路、不会做、论文不会写、太难了......
针对这些问题,决定分享一些软、硬件项目的设计思路和实施方法,希望可以帮助大家,也祝愿各位学子,顺利毕业!