java 实现图片下载 java上传下载图片

您所在的位置:网站首页 java实现文件上传到服务器 java 实现图片下载 java上传下载图片

java 实现图片下载 java上传下载图片

2023-07-08 07:12| 来源: 网络整理| 查看: 265

一.上传文件流程

1.上传UI可以使用element ui 提供的上传组件。element UI官方示例如下:

将文件拖到此处,或点击上传 只能上传jpg/png文件,且不超过500kb

element—upload地址 :https://element.eleme.cn/#/zh-CN/component/upload

2.参考文档,写对应的上传地址配、是否拖拽等配置,以及上传成功或失败的回调函数on-success、on-error等。

3.上传的地址,可以是单独的文件服务器某个路径,也可以是项目部署的服务器某个路径。文件存储的路径要独立,并且不同业务的文件夹也要区分存储。

4.注意,后台使用IOUtil.copy,将文件copy到服务器对应路径时,文件的名称需要使用UUID,进行处理,防止文件重复覆盖。

5.注意,文件的大小需要根据业务,进行合理的限制。

二.文件下载

1.前台将要下载的文件名称传递给后台的下载接口。

2.后台下载接口方式一,补充完整路径,通过流下载文件。

// 判断文件是否存在 File file = new File(pathFile); if(!file.exists()){ return; } // 读取要下载的文件,保存到文件输入流 FileInputStream in = new FileInputStream(pathFile); // 创建输出流 OutputStream out = response.getOutputStream(); // 将输入流中的文件,通过输出流 byte buffer[] = new byte[1024]; int len = 0; // 循环将输入流中的内容读取到缓冲区当中 while((len=in.read(buffer))>0){ // 输出缓冲区的内容到浏览器,实现文件下载 out.write(buffer, 0, len); } // 关闭文件输入流 in.close(); // 关闭输出流 out.close();

3.后台下载接口方式二,通过文件访问路径URL下载:

// 文件路径(upload/img会对应127.0.0.1:8080服务器某一个具体的文件路径,如tomcat配置的虚拟目录对应的实际的文件路径) String urlpath = "https://127.0.0.1:8080/upload/img/1.jpg"; // 文件名称 String fileName = "1.jpg"; public URLDownFile(String urlpath,String fileName) throws Exception { URL url = new URL(urlpath); //下载资源 DataInputStream dataInputStream = new DataInputStream(url.openStream()); FileOutputStream fileOutputStream = new FileOutputStream(new File(fileName)); byte[] bytes = new byte[1024]; int length = 0; while ((length = dataInputStream.read(bytes)) != -1) { fileOutputStream.write(bytes, 0, length); System.out.println("下载中...."); } System.out.println("下载完成..."); dataInputStream.close(); fileOutputStream.close(); }

三.tomcat项目,使用虚拟目录

server.xml文件中:HOST中增加如下内容:

1.path中的路径,就是浏览器访问路径,或是下载接口中的路径,下载文件时,tomcat最终会将path定位到docBase中配置实际服务器路径。

2.本地开发环境测试上传和下载功能:

1)上传和下载的文件路径,指定在开发本地服务器(主机电脑)上的某个路径。如:D://upload

2)配置tomcat,虚拟目录,如下:

 3)做上传调试,检查目录下是否有上传的文件,有则上传成功。上传成功后,进行下载功能本地调试,结束。

四.IoUtil工具类

1)IO工具类的存在主要针对InputStream、OutputStream、Reader、Writer封装简化,并对NIO相关操作做封装简化。总体来说,Hutool对IO的封装,主要是工具层面,我们努力做到在便捷、性能和灵活之间找到最好的平衡点。

 参考链接:https://www.javajike.com/book/hutool/chapter3/bcb6027e4e8d5c3ccb1740fe14d22c49.html

2)下载和上传接口流操作都可以使用IoUtil工具类,如IoUtil.copy()方法简化流操作



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3