提交 712b02cb authored 作者: liupengfei's avatar liupengfei

--no commit message

上级 37fbf18f
...@@ -120,6 +120,19 @@ public class FileController { ...@@ -120,6 +120,19 @@ public class FileController {
} }
return entity.getFileName(); return entity.getFileName();
} }
// 处理文件上传
@ApiOperation(value = "Client文件上传 返回唯一标识")
@RequestMapping(value = "/upload/client", method = RequestMethod.POST)
public CallBack<String> uploadFile(@RequestBody File file) throws Exception {
FileInfo entity = service.uploadFile(file);
if(!service.insert(entity)){
throw new BaseException("上传失败!");
}
return CallBack.success(entity.getFileName());
}
@ApiOperation(value = "生成二维码 返回唯一标识") @ApiOperation(value = "生成二维码 返回唯一标识")
@RequestMapping(value = "/upload/qrcode", method = RequestMethod.POST) @RequestMapping(value = "/upload/qrcode", method = RequestMethod.POST)
public String createImg(@RequestBody CreatreQRCodeForm form) { public String createImg(@RequestBody CreatreQRCodeForm form) {
......
package com.zrqx.file.service; package com.zrqx.file.service;
import java.io.File;
import java.io.IOException;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import com.zrqx.core.commons.model.file.FileInfo; import com.zrqx.core.commons.model.file.FileInfo;
...@@ -9,4 +12,5 @@ import com.zrqx.file.commons.form.CreatreQRCodeForm; ...@@ -9,4 +12,5 @@ import com.zrqx.file.commons.form.CreatreQRCodeForm;
public interface FileService extends BaseService<FileInfo, Integer>{ public interface FileService extends BaseService<FileInfo, Integer>{
public FileInfo uploadFile(MultipartFile file); public FileInfo uploadFile(MultipartFile file);
public FileInfo createFile(CreatreQRCodeForm form); public FileInfo createFile(CreatreQRCodeForm form);
public FileInfo uploadFile(File file) throws IOException;
} }
...@@ -2,11 +2,13 @@ package com.zrqx.file.service.impl; ...@@ -2,11 +2,13 @@ package com.zrqx.file.service.impl;
import java.io.BufferedOutputStream; import java.io.BufferedOutputStream;
import java.io.File; import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import org.apache.commons.io.IOUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -24,6 +26,7 @@ import com.zrqx.file.commons.form.CreatreQRCodeForm; ...@@ -24,6 +26,7 @@ import com.zrqx.file.commons.form.CreatreQRCodeForm;
import com.zrqx.file.mapper.FileMapper; import com.zrqx.file.mapper.FileMapper;
import com.zrqx.file.service.FileService; import com.zrqx.file.service.FileService;
import com.zrqx.file.util.HttpClientUtil; import com.zrqx.file.util.HttpClientUtil;
import com.zrqx.file.util.MockMultipartFile;
@Service @Service
public class FileServiceImpl extends BaseServiceImpl<FileInfo, Integer> implements FileService { public class FileServiceImpl extends BaseServiceImpl<FileInfo, Integer> implements FileService {
...@@ -38,19 +41,19 @@ public class FileServiceImpl extends BaseServiceImpl<FileInfo, Integer> implemen ...@@ -38,19 +41,19 @@ public class FileServiceImpl extends BaseServiceImpl<FileInfo, Integer> implemen
@Value("${file-root-path}") @Value("${file-root-path}")
private String rootPath; private String rootPath;
@Value("${file.upload.picture.suffix1}") @Value("${file.upload.picture.suffix1}")
private String suffix1; private String suffix1;
@Value("${file.upload.picture.suffix2}") @Value("${file.upload.picture.suffix2}")
private String suffix2; private String suffix2;
@Value("${file.upload.picture.compression.width}") @Value("${file.upload.picture.compression.width}")
private float width; private float width;
@Value("${file.upload.picture.compression.height}") @Value("${file.upload.picture.compression.height}")
private float height; private float height;
@Value("${file.upload.picture.compression.quality}") @Value("${file.upload.picture.compression.quality}")
private float quality; private float quality;
...@@ -85,10 +88,10 @@ public class FileServiceImpl extends BaseServiceImpl<FileInfo, Integer> implemen ...@@ -85,10 +88,10 @@ public class FileServiceImpl extends BaseServiceImpl<FileInfo, Integer> implemen
entity.setContentType(contentType); entity.setContentType(contentType);
entity.setSize(file.getSize()); entity.setSize(file.getSize());
entity.setCreateTime(new Date()); entity.setCreateTime(new Date());
if(entity.getOriginalFileName().contains(".pdf")) { if (entity.getOriginalFileName().contains(".pdf")) {
String param="pdfFilename="+entity.getPath()+"/"+entity.getFileName()+".pdf"+"&pdfSlice=10"; String param = "pdfFilename=" + entity.getPath() + "/" + entity.getFileName() + ".pdf" + "&pdfSlice=10";
String url="http://192.168.2.173:8690/file/dividePDFByPage?"+param; String url = "http://192.168.2.173:8690/file/dividePDFByPage?" + param;
HttpClientUtil.doGet(url,"utf-8"); HttpClientUtil.doGet(url, "utf-8");
} }
} catch (Exception e) { } catch (Exception e) {
logger.error("上传异常:" + e); logger.error("上传异常:" + e);
...@@ -104,10 +107,10 @@ public class FileServiceImpl extends BaseServiceImpl<FileInfo, Integer> implemen ...@@ -104,10 +107,10 @@ public class FileServiceImpl extends BaseServiceImpl<FileInfo, Integer> implemen
} }
return entity; return entity;
} }
@Override @Override
public FileInfo createFile(CreatreQRCodeForm form) { public FileInfo createFile(CreatreQRCodeForm form) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
String path = sdf.format(new Date()); String path = sdf.format(new Date());
String filePath = rootPath + path + "/"; String filePath = rootPath + path + "/";
...@@ -115,7 +118,7 @@ public class FileServiceImpl extends BaseServiceImpl<FileInfo, Integer> implemen ...@@ -115,7 +118,7 @@ public class FileServiceImpl extends BaseServiceImpl<FileInfo, Integer> implemen
if (!targetFile.exists()) { if (!targetFile.exists()) {
targetFile.mkdirs(); targetFile.mkdirs();
} }
// 获取文件名 // 获取文件名
String fileName = form.getFileName(); String fileName = form.getFileName();
// 获取文件的后缀名 // 获取文件的后缀名
...@@ -123,7 +126,6 @@ public class FileServiceImpl extends BaseServiceImpl<FileInfo, Integer> implemen ...@@ -123,7 +126,6 @@ public class FileServiceImpl extends BaseServiceImpl<FileInfo, Integer> implemen
// 解决中文问题,liunx下中文路径,图片显示问题 // 解决中文问题,liunx下中文路径,图片显示问题
String uuid = UUIDUtil.getUUID(); String uuid = UUIDUtil.getUUID();
filePath = filePath + uuid + suffixName; filePath = filePath + uuid + suffixName;
FileOutputStream fos = null; FileOutputStream fos = null;
BufferedOutputStream bos = null; BufferedOutputStream bos = null;
...@@ -136,7 +138,7 @@ public class FileServiceImpl extends BaseServiceImpl<FileInfo, Integer> implemen ...@@ -136,7 +138,7 @@ public class FileServiceImpl extends BaseServiceImpl<FileInfo, Integer> implemen
throw new BaseException(fileName + ": 二维码生成失败!" + form.getContent()); throw new BaseException(fileName + ": 二维码生成失败!" + form.getContent());
} }
entity.setFileName(uuid); entity.setFileName(uuid);
entity.setOriginalFileName(fileName+suffixName); entity.setOriginalFileName(fileName + suffixName);
entity.setSuffixName(suffixName); entity.setSuffixName(suffixName);
entity.setPath(path); entity.setPath(path);
entity.setContentType(form.getContent()); entity.setContentType(form.getContent());
...@@ -156,4 +158,110 @@ public class FileServiceImpl extends BaseServiceImpl<FileInfo, Integer> implemen ...@@ -156,4 +158,110 @@ public class FileServiceImpl extends BaseServiceImpl<FileInfo, Integer> implemen
} }
return entity; return entity;
} }
@Override
public FileInfo uploadFile(File file) throws IOException {
FileInputStream fileInput = new FileInputStream(file);
MultipartFile toMultipartFile = new MockMultipartFile("file",file.getName(),"text/plain", IOUtils.toByteArray(fileInput));
String contentType = toMultipartFile.getContentType();
// 获取文件名
String fileName = toMultipartFile.getOriginalFilename();
// 获取文件的后缀名
String suffixName = fileName.substring(fileName.lastIndexOf("."));
// 解决中文问题,liunx下中文路径,图片显示问题
String uuid = UUIDUtil.getUUID();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
String path = sdf.format(new Date());
String filePath = rootPath + path + "/";
File targetFile = new File(filePath);
if (!targetFile.exists()) {
targetFile.mkdirs();
}
filePath = filePath + uuid + suffixName;
FileOutputStream fos = null;
BufferedOutputStream bos = null;
FileInfo entity = new FileInfo();
try {
fos = new FileOutputStream(filePath);
bos = new BufferedOutputStream(fos);
bos.write(toMultipartFile.getBytes());
entity.setFileName(uuid);
entity.setOriginalFileName(fileName);
entity.setSuffixName(suffixName);
entity.setPath(path);
entity.setContentType(contentType);
entity.setSize(toMultipartFile.getSize());
entity.setCreateTime(new Date());
} catch (Exception e) {
logger.error("上传异常:" + e);
e.printStackTrace();
} finally {
try {
if (null != fos)
fos.flush();
if (null != bos)
bos.close();
} catch (IOException e) {
}
}
return entity;
}
/*
* @Override public FileInfo uploadFile(File file){ String result = null; String
* BOUNDARY = "letv"; // 边界标识 随机生成 String PREFIX = "--", LINE_END = "\r\n";
* String CONTENT_TYPE = "multipart/form-data"; // 内容类型
*
* // 获取文件名 String fileName = file.getName(); // 获取文件的后缀名 String suffixName =
* fileName.substring(fileName.lastIndexOf(".")); // 解决中文问题,liunx下中文路径,图片显示问题
* String uuid = UUIDUtil.getUUID(); SimpleDateFormat sdf = new
* SimpleDateFormat("yyyy/MM/dd"); String path = sdf.format(new Date()); String
* filePath = rootPath + path + "/"; FileInfo entity = new FileInfo();
*
* try { URL url = new URL("http://localhost"+filePath); HttpURLConnection conn
* = (HttpURLConnection) url.openConnection(); conn.setReadTimeout(6000);
* conn.setConnectTimeout(6000); conn.setDoInput(true); // 允许输入流
* conn.setDoOutput(true); // 允许输出流 conn.setUseCaches(false); // 不允许使用缓存
* conn.setRequestMethod("POST"); // 请求方式 conn.setRequestProperty("Charset",
* "utf-8"); // 设置编码 conn.setRequestProperty("connection", "keep-alive");
* conn.setRequestProperty("Content-Type", CONTENT_TYPE + ";boundary=" +
* BOUNDARY);
*
* entity.setFileName(uuid); entity.setOriginalFileName(fileName);
* entity.setSuffixName(suffixName); entity.setPath(path);
* entity.setCreateTime(new Date());
*
* if (file != null) {
*//**
* 当文件不为空,把文件包装并且上传
*/
/*
* DataOutputStream dos = new DataOutputStream( conn.getOutputStream());
* StringBuffer sb = new StringBuffer(); sb.append(PREFIX); sb.append(BOUNDARY);
* sb.append(LINE_END);
*//**
* 这里重点注意: name里面的值为服务器端需要key 只有这个key 才可以得到对应的文件 filename是文件的名字,包含后缀名的
* 比如:abc.png
*/
/*
* sb.append("Content-Disposition: form-data; name=\"file\"; filename=\"" +
* file.getName() + "\"" + LINE_END);
* sb.append("Content-Type: application/ctet-stream" + LINE_END);
* sb.append(LINE_END); dos.write(sb.toString().getBytes()); InputStream is =
* new FileInputStream(file); byte[] bytes = new byte[1024 * 1024]; int len = 0;
* while ((len = is.read(bytes)) != -1) { dos.write(bytes, 0, len); }
* is.close(); dos.write(LINE_END.getBytes()); byte[] end_data = (PREFIX +
* BOUNDARY + PREFIX + LINE_END) .getBytes(); dos.write(end_data); dos.flush();
*//**
* 获取响应码 200=成功 当响应成功,获取响应的流
*//*
* int res = conn.getResponseCode(); System.out.println("response code:" + res);
* // if(res==200) // { System.out.println("request success"); InputStream input
* = conn.getInputStream(); StringBuffer sb1 = new StringBuffer(); int ss; while
* ((ss = input.read()) != -1) { sb1.append((char) ss); } result =
* sb1.toString(); result = new String(result.getBytes("iso8859-1"), "utf-8");
* System.out.println("result : " + result); } } catch (MalformedURLException e)
* { e.printStackTrace(); return null; } catch (IOException e) {
* e.printStackTrace(); return null; } return entity; }
*/
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论