这篇文章主要介绍了java实现文件上传、下载、图片预览,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

多文件保存到本地:

@ResponseBody

@RequestMapping(value = "/uploadApp",produces = { "application/json;charset=UTF-8" },method= RequestMethod.POST)

public String uploadApp( HttpServletRequest request,@RequestParam("file") MultipartFile[] file) throws IOException {

try {

if(file.length > 0) {

String name = file[0].getOriginalFilename().split(";")[0];

String fileUrlName = CommonEnum.FILEPATH+"/"+name;

for (int i = 0; i < file.length; i++) {

FileUtils.copyInputStreamToFile(file[i].getInputStream(), new File(fileUrlName, file[i].getOriginalFilename().split(";")[1]));

}

return "success";

}else{

return "null";

}

}catch (Exception e){

e.printStackTrace();

return "error";

}

}

下载文件:

@RequestMapping(value = "/download", method = RequestMethod.GET)

@ResponseBody

public void download(@RequestParam Map data, HttpServletRequest request,HttpServletResponse response) throws FileNotFoundException {

String time = DateUtil.formatFromDate("yyyyMMddHHmmss", new Date());

List> urllist = companyService.findByIMG(data);

String path = (String) urllist.get(0).get("imgurl");

String docx = StringUtils.substringAfterLast(path, ".");

String fileName = time+"."+docx; // 文件的默认保存名

InputStream inStream = new FileInputStream(path);// 文件的存放路径

response.reset();

response.setContentType("bin");

response.addHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");

byte[] b = new byte[100];

int len;

try {

while ((len = inStream.read(b)) > 0)

response.getOutputStream().write(b, 0, len);

inStream.close();

} catch (IOException e) {

e.printStackTrace();

}

}

/**

* 读取图片

*/

@RequestMapping(value = "/iomoreimgcom", produces = {

"application/json;charset=UTF-8" }, method = RequestMethod.GET)

@ResponseBody

public synchronized void iomoreimgcom(HttpServletRequest request, HttpServletResponse response) throws Exception {

String url = request.getParameter("url");

File file = new File(url);

BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));

BufferedOutputStream bos = new BufferedOutputStream(response.getOutputStream());

response.setHeader("Content-Type", "image/jpeg");

byte b[] = new byte[1024];

int read;

try {

while ((read = bis.read(b)) != -1) {

bos.write(b, 0, read);

}

//request.getRequestDispatcher("/components/hazard/yscchird.html").forward(request, response);

} catch (Exception e) {

// TODO: handle exception

} finally {

if (bos != null) {

bos.close();

}

if (bis != null) {

bis.close();

}

}

}

前端请求直接拼接图片路径即可。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

java图片预览上传_java实现文件上传、下载、图片预览相关推荐

  1. java 大文件上传_JAVA大文件上传分片上传方法(附带demo)

    最近在做视频上传展示的相关业务!但是因为最开始使用的是单文件上传所以一旦遇到大文件上传的速度就非常慢!为此在网上一直找寻分片的方法!得到了思路! 直接讲一下我这边看了那么多文档加上自己理解写的demo ...

  2. 前端下载图片、pdf、excel、world文件;前端下载图片和pdf文件;前端a标签下载图片和pdf文件;下载文件名称不生效原因。

    参考文章1 参考文章2 以下的下载是,拿到了后端给的下载图片的接口地址url > 方法1:将文本或者JS字符串通过 Blob 转换成二进制下载 优点:可以下载,也可以保存名称. //文件流参数和 ...

  3. ***使用PHP实现文件上传和多文件上传

    http://www.365mini.com/page/php-upload-file.htm 在PHP程序开发中,文件上传是一个使用非常普遍的功能,也是PHP程序员的必备技能之一.值得高兴的是,在P ...

  4. springboot文件上传,单文件上传和多文件上传,以及数据遍历和回显

    springboot文件上传,单文件上传和多文件上传 项目结构及pom.xml 创建文件表单页面 编写javabean 编写controller映射 MultipartFile类 @RequestPa ...

  5. 前后端分离 -- 深入浅出 Spring Boot + Vue + ElementUI 实现相册管理系统【文件上传 分页 】 文件上传也不过如此~

    前后端分离 – 深入浅出系列 Spring Boot + Vue + ElementUI 实现相册管理系统[文件上传 分页 ] 文件上传也不过如此~ 引言 Hello,我是Bug终结者,一名热爱后端J ...

  6. 原生input标签实现ajax单文件上传和多文件上传

    自己还是一个菜鸟的时候,有次项目经理让我用Java做一个多文件上传的功能.那时候技术学得很渣,最多只能够实现单文件上传.做了一个星期都没有做出来,于是项目经理不留半点情面,当着办公室所有人的面痛批我一 ...

  7. php 上传文件漏洞,【文件上传】PHP文件上传漏洞

    0x01 文件上传漏洞 文件上传漏洞顾名思义就是用户上传一个可执行的脚本文件,获得了执行服务器端命令的能力.通常,文件上传是getshell最常用.最直接的方式了.但是,文件上传本身是一个正常的业务需 ...

  8. SpringMVC 单文件上传与多文件上传

    一.简述 一个javaWeb项目中,文件上传功能几乎是必不可少的,本人在项目开发中也时常会遇到,以前也没怎么去理它,今天有空学习了一下这方面的知识,于是便将本人学到的SpringMVC中单文件与多文件 ...

  9. vue-tinymce的使用,粘贴文件上传,自定义文件上传,改base64转换成上传到服务器返回url

    vue-tinymce的使用,粘贴文件上传,自定义文件上传,改base64转换成上传到服务器返回url vue中使用 <vue-tinymcev-model="itemForm.con ...

最新文章

  1. 全网最细 | 21张图带你领略集合的线程不安全
  2. 【Linux】tail命令
  3. 在CENTOS7下安装kubernetes填坑教程(原创)
  4. java 并发线程_Java并发教程–线程之间的可见性
  5. 蒙特卡罗模拟法 —— matlab
  6. A blog from Sensory
  7. linux搭建vsftp服务器_Linux(CentOS 7)搭建VSFTP服务器
  8. C++内存管理之shared_ptr
  9. PPT2010学习笔记(共20讲)
  10. Camtasia怎么添加文字效果
  11. 微信收藏服务器,微信收藏功能常见问题存储空间上限了
  12. 深入详解python高级特性——函数柯里化(Currying)与反柯里化
  13. 复数计算 [(8+6i)*(4+3i)]/[(8+6i)+(4+3i)]= ?
  14. 你了解HTTP2协议吗?(一)
  15. Matlab二维图形绘制与图形处理
  16. 面试——数据库常问问题
  17. 牛客练习赛6 珂学送分2
  18. Excel中引用方法
  19. 在线代码对比/匹配 代码对比 在线文本比较
  20. RegexBuddy、RegexMagic、EditPad官方绿色版

热门文章

  1. php-7.2.13的安装,Centos7.2编译安装php-7.0.13
  2. 【debug】mount: unknown filesystem type ‘nfs’
  3. drupal7 node.tpl.php,使用Drupal 7在custom - node.tpl.php中顯示CCK字段(無格式化)
  4. java 求最大公因数_求最大公约数的三种算法(java实现)
  5. 第1章第1节练习题10 查找中位数
  6. Android笔记(七十三) Android权限问题整理 非常全面
  7. [Code Snipper]图片轮换
  8. 方法的重写、重载及隐藏
  9. 计算机专业人士,必读之经典图书
  10. 边缘AI:国内首个高性能神经网络认知+项目实战发布