提交 032f0c5b authored 作者: zhangshuang's avatar zhangshuang

代码优化

上级 4aea4105
package com.zjty.ftp.service.impl; package com.zjty.ftp.service.impl;
import com.zjty.ftp.base.response.ServerResponse;
import com.zjty.ftp.service.FileDownLoadService; import com.zjty.ftp.service.FileDownLoadService;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.*; import java.io.*;
import java.util.List;
@Service @Service
public class FileDownLoadServiceImpl implements FileDownLoadService { public class FileDownLoadServiceImpl implements FileDownLoadService {
@Value("${file.address}")
private String fileAddress;
@Override @Override
public void fileDownLoad(String fileName, HttpServletResponse response, HttpServletRequest httpServletRequest) { public void fileDownLoad(String fileName, HttpServletResponse response, HttpServletRequest httpServletRequest) {
/*response.setContentType("application/force-download");// 设置强制下载不打开 if(fileName != null){
response.addHeader("Content-Disposition", "attachment;fileName=" + fileName);// 设置文件名 response.setHeader("content-type", "application/octet-stream");
*/ response.setContentType("application/octet-stream");
response.setHeader("content-type", "application/octet-stream"); try {
response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", "attachment;filename="+new String(fileName.getBytes("utf-8"),"utf-8"));
try { } catch (UnsupportedEncodingException e) {
response.setHeader("Content-Disposition", "attachment;filename="+new String(fileName.getBytes("utf-8"),"utf-8")); e.printStackTrace();
} catch (UnsupportedEncodingException e) { }
e.printStackTrace(); File sourceFile = new File(fileAddress);
} File[] files = sourceFile.listFiles();
setFileDownloadHeader(httpServletRequest,response,fileName); if(files != null && files.length != 0){
OutputStream os = null; for (File f:files){
InputStream is = null; if (f.getName().startsWith(fileName)){
BufferedInputStream bs = null; fileName = f.getName();
byte[] buffer = new byte[1024]; break;
try { }
is = new FileInputStream(new File("/file/uploads/" + fileName)); }
bs = new BufferedInputStream(is); }
os = response.getOutputStream(); File file = new File(fileAddress + "/" + fileName);
int i = bs.read(buffer); setFileDownloadHeader(httpServletRequest,response,fileName);
while (i != -1) { OutputStream os = null;
os.write(buffer, 0, i); InputStream is = null;
i = bs.read(buffer); BufferedInputStream bs = null;
} byte[] buffer = new byte[1024];
os.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try { try {
bs.close(); is = new FileInputStream(file);
is.close(); bs = new BufferedInputStream(is);
os.close(); os = response.getOutputStream();
int i = bs.read(buffer);
while (i != -1) {
os.write(buffer, 0, i);
i = bs.read(buffer);
}
os.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} finally {
try {
bs.close();
is.close();
os.close();
} catch (IOException e) {
e.printStackTrace();
}
} }
} }
} }
......
...@@ -3,6 +3,7 @@ package com.zjty.ftp.service.impl; ...@@ -3,6 +3,7 @@ package com.zjty.ftp.service.impl;
import com.zjty.ftp.service.FileUploadService; import com.zjty.ftp.service.FileUploadService;
import com.zjty.ftp.base.response.ServerResponse; import com.zjty.ftp.base.response.ServerResponse;
import com.zjty.ftp.entity.FileReturn; import com.zjty.ftp.entity.FileReturn;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.multipart.MultipartHttpServletRequest;
...@@ -16,6 +17,9 @@ import java.util.UUID; ...@@ -16,6 +17,9 @@ import java.util.UUID;
@Service @Service
public class FileUploadServiceImpl implements FileUploadService { public class FileUploadServiceImpl implements FileUploadService {
@Value("${file.address}")
private String fileAddress;
/** /**
* 前台文件上传 * 前台文件上传
* @param request * @param request
...@@ -35,7 +39,7 @@ public class FileUploadServiceImpl implements FileUploadService { ...@@ -35,7 +39,7 @@ public class FileUploadServiceImpl implements FileUploadService {
//String suffix = sourceName.substring(sourceName.lastIndexOf(".")); //String suffix = sourceName.substring(sourceName.lastIndexOf("."));
//String fileName = UUID.randomUUID().toString() + suffix; //String fileName = UUID.randomUUID().toString() + suffix;
//不存在该目录,创建目录 //不存在该目录,创建目录
File file = new File("/file/uploads"); File file = new File(fileAddress);
if(!file.exists()){ if(!file.exists()){
file.mkdirs(); file.mkdirs();
} }
......
...@@ -3,3 +3,5 @@ server.port=8093 ...@@ -3,3 +3,5 @@ server.port=8093
# spring-http-ļϴ # spring-http-ļϴ
spring.servlet.multipart.max-file-size=200MB spring.servlet.multipart.max-file-size=200MB
spring.servlet.multipart.max-request-size=200MB spring.servlet.multipart.max-request-size=200MB
file.address=/file/uploads
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论