Java怎么实现的文件上传下载工具类

  介绍

小编给大家分享一下Java怎么实现的文件上传下载工具类,希望大家阅读完这篇文章之后都有所收获、下面让我们一起去探讨吧!

本文实例讲述了Java实现的文件上传下载工具类。分享给大家供大家参考,具体如下:

这是一个在Eclipse环境下采用Java语言实现文件上传下载的工具类。和之前介绍的c#文件上传下载工具类一样,在上传时,为避免文件名在服务器中重复,采用“服务器时间(定义到毫秒)+文件名+文件后缀”的方式作为服务器上的文件名;下载过程中利用spring mvc ResponseEntity做文件下载,返回的是字节流,下载成功后可自定义文件的保存路径。

具体源码如下所示:

package  com.utils;   import  java.io.File;   import  java.io.IOException;   import  java.io.InputStream;   import  java.io.UnsupportedEncodingException;   import  java.text.SimpleDateFormat;   import  java.util.Date;   import  org.apache.commons.io.FileUtils;   import  org.springframework.http.HttpHeaders;   import  org.springframework.http.HttpStatus;   import  org.springframework.http.MediaType;   import  org.springframework.http.ResponseEntity;/* *   ,*文件上传下载工具类   ,*   ,*/public  class  FileHelper  {   ,/* *   ,,*,根据路径确定目录,没有目录,则创建目录   ,,*   ,,*,@param 路径   ,,*/private 才能static  void  createDir (String 路径),{   ,,,File  fileDir =, new 文件(路径);   ,,,if  (! fileDir.exists (),,,, ! fileDir.isDirectory()),{//,判断/下载目录是否存在   ,,,,,fileDir.mkdir();//,创建目录   ,,,}   ,,}   ,/* *   ,,*,将文件名解析成文件的上传路径   ,,*   ,,*,@param 文件名   ,,*,@return 上传到服务器的文件名   ,,*/public 才能static  String  transPath (String ,文件名,String 路径),{   ,,,createDir(路径);   ,,,Date  Date =, new 日期();   ,,,SimpleDateFormat  dateformat =, new  SimpleDateFormat (“yyyyMMddhhmmssSSS");//,定义到毫秒   ,,,String  nowStr =, dateformat.format(日期);   ,,,String  filenameStr =, fileName.substring (0,, fileName.lastIndexOf(“!”);//,去掉后缀的文件名   ,,,String  suffix =, fileName.substring (fileName.lastIndexOf(“!”), +, 1);//,后缀   ,,,if  (fileName.trim(), !=,““),{//,如果名称不为““,说明该文件存在,否则说明该文件不存在   ,,,,,path  +=,“\ \”, +, filenameStr  +, nowStr  +,“干净,+,后缀;//,定义上传路径   ,,,}   ,,,return 路径;   ,,}   ,/* *   ,,*,提醒文件下载   ,,*   ,,*,@param 文件名   ,,*,@param 路径   ,,* @return   ,,*/public 才能static  ResponseEntity< byte[]祝辞,downloadFile (String ,文件名,String 路径),{   ,,,try  {   ,,,,,fileName =, new 字符串(fileName.getBytes (“GB2312"),“ISO_8859_1");//,避免文件名中文不显示   ,,,},catch  (UnsupportedEncodingException  e1), {   ,,,,,e1.printStackTrace ();   ,,,}   ,,,File  File =, new 文件(路径);   ,,,HttpHeaders  headers =, new  HttpHeaders ();   ,,,headers.setContentType (MediaType.APPLICATION_OCTET_STREAM);   ,,,headers.setContentDispositionFormData (“attachment",,文件名);   ,,,ResponseEntityJava怎么实现的文件上传下载工具类