文件上传下载

Java文件上传和下载对于刚接触Java没多久的老铁们来说可能是一个技术难点。如果看过我前两篇文章的老铁肯定就知道,这次肯定又是一个工具类,废话少说我们直接附上代码。

package com.fashion.fox.ctr;import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.UUID;import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
import com.fashion.fox.ctr.Constant;/*** TODO:文件上传和下载* @Title Utils 工具类* @author Mr.Zhang  * @date 2019年10月18日  * @version 1.0*/
@Component
public class LoadUtils {/*** TODO:文件下载* @param urlStr* @param savePath* @return boolean*/public boolean downLoadFromUrl(String urlStr, String savePath) {OutputStream os = null;InputStream inputStream = null;try {URL url = new URL(urlStr);//这一步骤的目的是判别文件的后缀名String end = urlStr.trim();for (int i = 0; i < urlStr.length(); i++) {int index = end.indexOf(".");if (index < 0) {break;}end = end.substring(index + 1);}String fileName = UUID.randomUUID().toString() + "." + end;HttpURLConnection conn = (HttpURLConnection) url.openConnection();// 设置超时间为3秒conn.setConnectTimeout(3 * 1000);// 防止屏蔽程序抓取而返回403错误conn.setRequestProperty(Constant.USERAGENT, Constant.MOZILLA);// 得到输入流inputStream = conn.getInputStream();// 获取自己数组byte[] bs = new byte[1024];int len;// 文件保存位置File tempFile = new File(savePath);if (!tempFile.exists()) {tempFile.mkdirs();}os = new FileOutputStream(tempFile.getPath() + File.separator + fileName);// 开始读取while ((len = inputStream.read(bs)) != -1) {os.write(bs, 0, len);}} catch (Exception e) {e.printStackTrace();return false;} finally {// 完毕,关闭所有链接try {os.close();} catch (Exception e) {e.printStackTrace();}}return true;}/*** TODO:文件上传* @param file* @param FilePath* @param FileName* @return boolean*/public boolean upLoad(MultipartFile file, String savePath, String FileName) {OutputStream os = null;InputStream inputStream = null;String fileName = null;try {String imgeAfter = file.getOriginalFilename();//获取文件后缀名imgeAfter = imgeAfter.substring(imgeAfter.indexOf("."));inputStream = file.getInputStream();//拼接文件上传路径fileName = FileName + imgeAfter;// 2、保存到临时文件// 1K的数据缓冲byte[] bs = new byte[1024];// 读取到的数据长度int len;// 输出的文件流保存到本地文件File tempFile = new File(savePath);if (!tempFile.exists()) {tempFile.mkdirs();}os = new FileOutputStream(tempFile.getPath() + File.separator + fileName);// 开始读取while ((len = inputStream.read(bs)) != -1) {os.write(bs, 0, len);}} catch (Exception e) {e.printStackTrace();return false;} finally {// 完毕,关闭所有链接try {os.close();inputStream.close();} catch (Exception e) {e.printStackTrace();}}return true;}
}

Java文件上传下载相关推荐

  1. JAVA 文件上传下载工具类

    JAVA 文件上传下载工具类 import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.FileUtils; import org. ...

  2. 2021-10-14 ContextType(MIME) 与 Java文件上传/下载

    ContextType(MIME) 与 Java文件上传/下载 ContextType(MIME) Text Image Audio Video Application Multipart 和 Mes ...

  3. java 文件 上传 下载

    QuFileUtil web_uploader.html <!DOCTYPE html> <html lang="en"> <head> < ...

  4. java文件上传下载工具类FileUtils

    上传: package com.yonyougov.dmp.amserver.utils;import com.alibaba.fastjson.JSON; import org.slf4j.Logg ...

  5. java文件上传下载服务并发超时,先收藏了

    一.阿里 (会员中台) 1. Java 重写hashcode()是否需要重写equals(),不重写会有什么后果 2. 并发 自旋锁和阻塞锁的区别 公平锁和非公平锁的区别 jdk中哪种数据结构或工具可 ...

  6. java文件上传下载服务并发超时,震撼来袭免费下载!

    前言 正值金九银十面试旺季,现在的面试官一天少说得看几百份简历,你投出去的简历如果没有特别吸引人的点和新颖突出,毫无疑问你的简历不是在垃圾桶就是在回收站里边待着了,那么什么样的简历才能吸引到面试官的眼 ...

  7. 文件上传 java web_JavaWeb 文件上传下载

    1. 文件上传下载概述 1.1. 什么是文件上传下载 所谓文件上传下载就是将本地文件上传到服务器端,从服务器端下载文件到本地的过程.例如目前网站需要上传头像.上传下载图片或网盘等功能都是利用文件上传下 ...

  8. java实现excel文件上传_java相关:SpringMVC下实现Excel文件上传下载

    java相关:SpringMVC下实现Excel文件上传下载 发布于 2020-6-21| 复制链接 摘记: 在实际应用中,经常会遇到上传Excel或者下载Excel的情况,比如导入数据.下载统计数据 ...

  9. java ftp 下载慢_Java实现ftp文件上传下载解决慢中文乱码多个文件下载等问题

    废话不多说了,直接给大家贴代码了,具体代码如下所示: //文件上传 public static boolean uploadToFTP(String url,int port,String usern ...

最新文章

  1. pap和chap交叉认证
  2. yml php,使用 docker-compose.yml 快速搭建php开发环境
  3. jupyter notebook切换到其他配置好的conda虚拟环境
  4. linux创建更改目录,Linux中目录的创建与删除命令使用说明
  5. 新浪微博客户端(42)-完善表情键盘的工具条
  6. 自学python能学成吗-Python能自学成功吗?
  7. 用于语音情绪识别的基于对抗学习的说话人无关的表示
  8. rj45接口引脚定义_RJ45接口针脚定义(各种接口针脚定义)
  9. 计算机与调制解调器之间接口为,单片机串行接口和调制解调器如何实现远程通信...
  10. 读后感之悟道-一位20年IT高管的职场心得
  11. Windows和Mac系统盘瘦身的一些经验
  12. 【SSD-Caffe】安装使用教程
  13. Python之父愤然退位:再也无法忍受他们鄙视我的意见
  14. CentOS系列之Elasticsearch(二):查询
  15. 连续环境下基于enhanced GA算法的多目标多机器人路径算法
  16. [收藏]《观察与思考》:相信中国,寻找下一个比尔·盖茨
  17. 【散文】 岁月留痕遇好友
  18. 如何 SolidWorks 减小文件大小?
  19. Office 中Word十大技巧
  20. STM32f103USB移植之USB鼠标

热门文章

  1. begin( )和cbegin( )异同
  2. activiti整合插件
  3. 夜幕,又一次降临。窗外,风呼呼的刮着
  4. cannot pass non-trivial object of type 'string' to variadic function
  5. ios %.2f是四舍五入吗?
  6. CSS background-size :contain与cover区别
  7. 联想y430p win8.1 解决qq语音 qq视频卡死 yy卡死 等录音软件卡死问题
  8. echarts混合图、省份地图、中国地图、环形图
  9. 我为何向蔡元培老校长三鞠躬?
  10. 永恒之蓝漏洞利用及攻击