Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
M
master-5.0
Project
Project
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
Graph
比较
统计图
议题
0
议题
0
列表
看板
标记
Milestones
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
注册表
注册表
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
svn
master-5.0
Commits
712b02cb
提交
712b02cb
authored
11月 11, 2019
作者:
liupengfei
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
--no commit message
上级
37fbf18f
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
139 行增加
和
14 行删除
+139
-14
FileController.java
...rc/main/java/com/zrqx/file/controller/FileController.java
+13
-0
FileService.java
...file/src/main/java/com/zrqx/file/service/FileService.java
+4
-0
FileServiceImpl.java
...main/java/com/zrqx/file/service/impl/FileServiceImpl.java
+122
-14
没有找到文件。
app/file/src/main/java/com/zrqx/file/controller/FileController.java
浏览文件 @
712b02cb
...
...
@@ -120,6 +120,19 @@ public class FileController {
}
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
=
"生成二维码 返回唯一标识"
)
@RequestMapping
(
value
=
"/upload/qrcode"
,
method
=
RequestMethod
.
POST
)
public
String
createImg
(
@RequestBody
CreatreQRCodeForm
form
)
{
...
...
app/file/src/main/java/com/zrqx/file/service/FileService.java
浏览文件 @
712b02cb
package
com
.
zrqx
.
file
.
service
;
import
java.io.File
;
import
java.io.IOException
;
import
org.springframework.web.multipart.MultipartFile
;
import
com.zrqx.core.commons.model.file.FileInfo
;
...
...
@@ -9,4 +12,5 @@ import com.zrqx.file.commons.form.CreatreQRCodeForm;
public
interface
FileService
extends
BaseService
<
FileInfo
,
Integer
>{
public
FileInfo
uploadFile
(
MultipartFile
file
);
public
FileInfo
createFile
(
CreatreQRCodeForm
form
);
public
FileInfo
uploadFile
(
File
file
)
throws
IOException
;
}
app/file/src/main/java/com/zrqx/file/service/impl/FileServiceImpl.java
浏览文件 @
712b02cb
...
...
@@ -2,11 +2,13 @@ package com.zrqx.file.service.impl;
import
java.io.BufferedOutputStream
;
import
java.io.File
;
import
java.io.FileInputStream
;
import
java.io.FileOutputStream
;
import
java.io.IOException
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
import
org.apache.commons.io.IOUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -24,6 +26,7 @@ import com.zrqx.file.commons.form.CreatreQRCodeForm;
import
com.zrqx.file.mapper.FileMapper
;
import
com.zrqx.file.service.FileService
;
import
com.zrqx.file.util.HttpClientUtil
;
import
com.zrqx.file.util.MockMultipartFile
;
@Service
public
class
FileServiceImpl
extends
BaseServiceImpl
<
FileInfo
,
Integer
>
implements
FileService
{
...
...
@@ -38,19 +41,19 @@ public class FileServiceImpl extends BaseServiceImpl<FileInfo, Integer> implemen
@Value
(
"${file-root-path}"
)
private
String
rootPath
;
@Value
(
"${file.upload.picture.suffix1}"
)
private
String
suffix1
;
@Value
(
"${file.upload.picture.suffix2}"
)
private
String
suffix2
;
@Value
(
"${file.upload.picture.compression.width}"
)
private
float
width
;
@Value
(
"${file.upload.picture.compression.height}"
)
private
float
height
;
@Value
(
"${file.upload.picture.compression.quality}"
)
private
float
quality
;
...
...
@@ -85,10 +88,10 @@ public class FileServiceImpl extends BaseServiceImpl<FileInfo, Integer> implemen
entity
.
setContentType
(
contentType
);
entity
.
setSize
(
file
.
getSize
());
entity
.
setCreateTime
(
new
Date
());
if
(
entity
.
getOriginalFileName
().
contains
(
".pdf"
))
{
String
param
=
"pdfFilename="
+
entity
.
getPath
()+
"/"
+
entity
.
getFileName
()+
".pdf"
+
"&pdfSlice=10"
;
String
url
=
"http://192.168.2.173:8690/file/dividePDFByPage?"
+
param
;
HttpClientUtil
.
doGet
(
url
,
"utf-8"
);
if
(
entity
.
getOriginalFileName
().
contains
(
".pdf"
))
{
String
param
=
"pdfFilename="
+
entity
.
getPath
()
+
"/"
+
entity
.
getFileName
()
+
".pdf"
+
"&pdfSlice=10"
;
String
url
=
"http://192.168.2.173:8690/file/dividePDFByPage?"
+
param
;
HttpClientUtil
.
doGet
(
url
,
"utf-8"
);
}
}
catch
(
Exception
e
)
{
logger
.
error
(
"上传异常:"
+
e
);
...
...
@@ -104,10 +107,10 @@ public class FileServiceImpl extends BaseServiceImpl<FileInfo, Integer> implemen
}
return
entity
;
}
@Override
public
FileInfo
createFile
(
CreatreQRCodeForm
form
)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy/MM/dd"
);
String
path
=
sdf
.
format
(
new
Date
());
String
filePath
=
rootPath
+
path
+
"/"
;
...
...
@@ -115,7 +118,7 @@ public class FileServiceImpl extends BaseServiceImpl<FileInfo, Integer> implemen
if
(!
targetFile
.
exists
())
{
targetFile
.
mkdirs
();
}
// 获取文件名
String
fileName
=
form
.
getFileName
();
// 获取文件的后缀名
...
...
@@ -123,7 +126,6 @@ public class FileServiceImpl extends BaseServiceImpl<FileInfo, Integer> implemen
// 解决中文问题,liunx下中文路径,图片显示问题
String
uuid
=
UUIDUtil
.
getUUID
();
filePath
=
filePath
+
uuid
+
suffixName
;
FileOutputStream
fos
=
null
;
BufferedOutputStream
bos
=
null
;
...
...
@@ -136,7 +138,7 @@ public class FileServiceImpl extends BaseServiceImpl<FileInfo, Integer> implemen
throw
new
BaseException
(
fileName
+
": 二维码生成失败!"
+
form
.
getContent
());
}
entity
.
setFileName
(
uuid
);
entity
.
setOriginalFileName
(
fileName
+
suffixName
);
entity
.
setOriginalFileName
(
fileName
+
suffixName
);
entity
.
setSuffixName
(
suffixName
);
entity
.
setPath
(
path
);
entity
.
setContentType
(
form
.
getContent
());
...
...
@@ -156,4 +158,110 @@ public class FileServiceImpl extends BaseServiceImpl<FileInfo, Integer> implemen
}
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
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论