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

代码优化

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