Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
cloud-platform
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
youjj
cloud-platform
Commits
01e6f22f
Commit
01e6f22f
authored
Jun 01, 2019
by
hezhen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改上传图片
parent
57aac7ac
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
9 additions
and
192 deletions
+9
-192
SystemConfig.java
...ub/wxiaoqi/security/common/util/process/SystemConfig.java
+4
-0
systemconfig.properties
...mon/src/main/resources/properties/systemconfig.properties
+1
-1
OrderRefundBiz.java
.../java/com/xxfc/platform/universal/biz/OrderRefundBiz.java
+0
-1
UploadController.java
.../xxfc/platform/universal/controller/UploadController.java
+2
-190
UploadService.java
...va/com/xxfc/platform/universal/service/UploadService.java
+2
-0
No files found.
ace-common/src/main/java/com/github/wxiaoqi/security/common/util/process/SystemConfig.java
View file @
01e6f22f
...
@@ -5,6 +5,8 @@ import com.github.wxiaoqi.security.common.util.SystemProperty;
...
@@ -5,6 +5,8 @@ import com.github.wxiaoqi.security.common.util.SystemProperty;
public
class
SystemConfig
{
public
class
SystemConfig
{
// 项目url
public
static
final
String
XXMP_URL
=
SystemProperty
.
getConfig
(
"XXMP_URL"
);
// token到期时间
// token到期时间
public
static
Integer
TOKENOVERTIME
=
Integer
.
valueOf
(
SystemProperty
.
getConfig
(
"TOKEN_OVER_TIME"
));
public
static
Integer
TOKENOVERTIME
=
Integer
.
valueOf
(
SystemProperty
.
getConfig
(
"TOKEN_OVER_TIME"
));
// redis缓存时间
// redis缓存时间
...
@@ -59,4 +61,6 @@ public class SystemConfig {
...
@@ -59,4 +61,6 @@ public class SystemConfig {
// 存放退款证书目录
// 存放退款证书目录
public
static
String
APICLIENT_CERT
=
SystemProperty
.
getConfig
(
"APICLIENT_CERT"
);
public
static
String
APICLIENT_CERT
=
SystemProperty
.
getConfig
(
"APICLIENT_CERT"
);
}
}
ace-common/src/main/resources/properties/systemconfig.properties
View file @
01e6f22f
#项目url
#项目url
XXMP_URL
=
http
://zhrstest.qzlife.net
XXMP_URL
=
http
s://xxtest.upyuns.com
#token到期时间
#token到期时间
TOKEN_OVER_TIME
=
604800
TOKEN_OVER_TIME
=
604800
#itoken到期时间(6天)
#itoken到期时间(6天)
...
...
xx-universal/xx-universal-server/src/main/java/com/xxfc/platform/universal/biz/OrderRefundBiz.java
View file @
01e6f22f
...
@@ -5,7 +5,6 @@ import com.github.wxiaoqi.security.common.util.OrderUtil;
...
@@ -5,7 +5,6 @@ import com.github.wxiaoqi.security.common.util.OrderUtil;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
import
com.github.wxiaoqi.security.common.util.process.SystemConfig
;
import
com.github.wxiaoqi.security.common.util.process.SystemConfig
;
import
com.github.wxiaoqi.security.common.util.result.JsonResultUtil
;
import
com.github.wxiaoqi.security.common.util.result.JsonResultUtil
;
import
com.xxfc.platform.universal.controller.OrderRefundController
;
import
com.xxfc.platform.universal.vo.OrderRefundVo
;
import
com.xxfc.platform.universal.vo.OrderRefundVo
;
import
com.xxfc.platform.universal.weixin.api.WxPayRefundUtils
;
import
com.xxfc.platform.universal.weixin.api.WxPayRefundUtils
;
import
com.xxfc.platform.universal.weixin.util.Snowflake
;
import
com.xxfc.platform.universal.weixin.util.Snowflake
;
...
...
xx-universal/xx-universal-server/src/main/java/com/xxfc/platform/universal/controller/UploadController.java
View file @
01e6f22f
package
com
.
xxfc
.
platform
.
universal
.
controller
;
package
com
.
xxfc
.
platform
.
universal
.
controller
;
import
java.io.File
;
import
java.io.FileOutputStream
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.UUID
;
import
javax.servlet.ServletException
;
import
javax.servlet.http.HttpServlet
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken
;
import
com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken
;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
import
com.github.wxiaoqi.security.common.util.result.JsonResultUtil
;
import
com.github.wxiaoqi.security.common.util.result.JsonResultUtil
;
import
com.xxfc.platform.universal.service.UploadService
;
import
com.xxfc.platform.universal.service.UploadService
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.fileupload.FileItem
;
import
org.apache.commons.fileupload.FileUploadBase
;
import
org.apache.commons.fileupload.ProgressListener
;
import
org.apache.commons.fileupload.disk.DiskFileItemFactory
;
import
org.apache.commons.fileupload.servlet.ServletFileUpload
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.http.ResponseEntity
;
...
@@ -35,7 +16,7 @@ import org.springframework.web.multipart.MultipartFile;
...
@@ -35,7 +16,7 @@ import org.springframework.web.multipart.MultipartFile;
/**
/**
*
Servlet implementation class FileDemo
*
图片上传
*/
*/
@RestController
@RestController
@RequestMapping
(
"file"
)
@RequestMapping
(
"file"
)
...
@@ -48,174 +29,6 @@ public class UploadController{
...
@@ -48,174 +29,6 @@ public class UploadController{
private
static
Integer
MAX_DRIVING_LICENSE_SIZE
=
10
*
1024
*
1024
;
//10M
private
static
Integer
MAX_DRIVING_LICENSE_SIZE
=
10
*
1024
*
1024
;
//10M
/**
*
*/
private
static
final
long
serialVersionUID
=
564190060577130813L
;
/*@RequestMapping(value="/app/unauth/upload",method = RequestMethod.POST)
public JSONObject doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//得到上传文件的保存目录,将上传的文件存放于WEB-INF目录下,不允许外界直接访问,保证上传文件的安全
String savePath = "D:/hezhen/upload";
//上传时生成的临时文件保存目录
String tempPath = "D:/hezhen/temp";
File tmpFile = new File(tempPath);
if (!tmpFile.exists()) {
//创建临时目录
tmpFile.mkdir();
}
// 组织返回结果集
JSONObject result = new JSONObject();
List<String> urls=new ArrayList<>();
try{
//使用Apache文件上传组件处理文件上传步骤:
//1、创建一个DiskFileItemFactory工厂
DiskFileItemFactory factory = new DiskFileItemFactory();
//设置工厂的缓冲区的大小,当上传的文件大小超过缓冲区的大小时,就会生成一个临时文件存放到指定的临时目录当中。
factory.setSizeThreshold(1024*100);//设置缓冲区的大小为100KB,如果不指定,那么缓冲区的大小默认是10KB
//设置上传时生成的临时文件的保存目录
factory.setRepository(tmpFile);
//2、创建一个文件上传解析器
ServletFileUpload upload = new ServletFileUpload(factory);
//监听文件上传进度
upload.setProgressListener(new ProgressListener(){
public void update(long pBytesRead, long pContentLength, int arg2) {
System.out.println("文件大小为:" + pContentLength + ",当前已处理:" + pBytesRead);
*//**
* 文件大小为:14608,当前已处理:4096
文件大小为:14608,当前已处理:7367
文件大小为:14608,当前已处理:11419
文件大小为:14608,当前已处理:14608
*//*
float f = pBytesRead/pContentLength;
try {
response.getWriter().write(f+"");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
//解决上传文件名的中文乱码
upload.setHeaderEncoding("UTF-8");
//3、判断提交上来的数据是否是上传表单的数据
if(!ServletFileUpload.isMultipartContent(request)){
//按照传统方式获取数据
return JsonResultUtil.createDefaultFail();
}
//设置上传单个文件的大小的最大值,目前是设置为1024*1024字节,也就是1MB
upload.setFileSizeMax(1024*1024);
//设置上传文件总量的最大值,最大值=同时上传的多个文件的大小的最大值的和,目前设置为10MB
upload.setSizeMax(1024*1024*10);
//4、使用ServletFileUpload解析器解析上传数据,解析结果返回的是一个List<FileItem>集合,每一个FileItem对应一个Form表单的输入项
List<FileItem> list = (List<FileItem>)upload.parseRequest(request);
for(FileItem item : list){
//如果fileitem中封装的是普通输入项的数据
if(item.isFormField()){
String name = item.getFieldName();
//解决普通输入项的数据的中文乱码问题
String value = item.getString("UTF-8");
//value = new String(value.getBytes("iso8859-1"),"UTF-8");
System.out.println(name + "=" + value);
}else{//如果fileitem中封装的是上传文件
//得到上传的文件名称,
String filename = item.getName();
System.out.println(filename);
if(filename==null || filename.trim().equals("")){
continue;
}
//注意:不同的浏览器提交的文件名是不一样的,有些浏览器提交上来的文件名是带有路径的,如: c:\a\b\1.txt,而有些只是单纯的文件名,如:1.txt
//处理获取到的上传文件的文件名的路径部分,只保留文件名部分
filename = filename.substring(filename.lastIndexOf("\\")+1);
//得到上传文件的扩展名
String fileExtName = filename.substring(filename.lastIndexOf(".")+1);
//如果需要限制上传的文件类型,那么可以通过文件的扩展名来判断上传的文件类型是否合法
System.out.println("上传的文件的扩展名是:"+fileExtName);
//获取item中的上传文件的输入流
InputStream in = item.getInputStream();
//得到文件保存的名称
String saveFilename = makeFileName(filename);
//得到文件的保存目录
String realSavePath = makePath(saveFilename, savePath);
System.out.println(realSavePath);
urls.add(realSavePath);
//创建一个文件输出流
FileOutputStream out = new FileOutputStream(realSavePath + "\\" + saveFilename);
//创建一个缓冲区
byte buffer[] = new byte[1024];
//判断输入流中的数据是否已经读完的标识
int len = 0;
//循环将输入流读入到缓冲区当中,(len=in.read(buffer))>0就表示in里面还有数据
while((len=in.read(buffer))>0){
//使用FileOutputStream输出流将缓冲区的数据写入到指定的目录(savePath + "\\" + filename)当中
out.write(buffer, 0, len);
}
//关闭输入流
in.close();
//关闭输出流
out.close();
//删除处理文件上传时生成的临时文件
item.delete();
System.out.println("文件上传成功!");
}
}
}catch (FileUploadBase.FileSizeLimitExceededException e) {
e.printStackTrace();
return JsonResultUtil.createFailedResult(ResultCode.EXCEPTION_CODE, "单个文件超出最大值!!!");
}catch (FileUploadBase.SizeLimitExceededException e) {
e.printStackTrace();
return JsonResultUtil.createFailedResult(ResultCode.EXCEPTION_CODE, "上传文件的总的大小超出限制的最大值!!!");
}catch (Exception e) {
e.printStackTrace();
return JsonResultUtil.createFailedResult(ResultCode.EXCEPTION_CODE, "文件上传失败!");
}
if(urls.size()>0){
result.put("url",urls);
return JsonResultUtil.createSuccessResultWithObj(result);
}
return JsonResultUtil.createDefaultFail();
}*/
/**
* @Method: makeFileName
* @Description: 生成上传文件的文件名,文件名以:uuid+"_"+文件的原始名称
* @param filename 文件的原始名称
* @return uuid+"_"+文件的原始名称
*/
private
String
makeFileName
(
String
filename
){
//2.jpg
//为防止文件覆盖的现象发生,要为上传文件产生一个唯一的文件名
return
UUID
.
randomUUID
().
toString
()
+
"_"
+
filename
;
}
/**
* 为防止一个目录下面出现太多文件,要使用hash算法打散存储
* @Method: makePath
* @Description:
*
* @param filename 文件名,要根据文件名生成存储目录
* @param savePath 文件存储路径
* @return 新的存储目录
*/
private
String
makePath
(
String
filename
,
String
savePath
){
//得到文件名的hashCode的值,得到的就是filename这个字符串对象在内存中的地址
int
hashcode
=
filename
.
hashCode
();
int
dir1
=
hashcode
&
0xf
;
//0--15
int
dir2
=
(
hashcode
&
0xf0
)>>
4
;
//0-15
//构造新的保存目录
String
dir
=
savePath
+
"\\"
+
dir1
+
"\\"
+
dir2
;
//upload\2\3 upload\3\5
//File既可以代表文件也可以代表目录
File
file
=
new
File
(
dir
);
//如果目录不存在
if
(!
file
.
exists
()){
//创建目录
file
.
mkdirs
();
}
return
dir
;
}
@RequestMapping
(
value
=
"/app/unauth/upload"
,
method
=
RequestMethod
.
POST
)
@RequestMapping
(
value
=
"/app/unauth/upload"
,
method
=
RequestMethod
.
POST
)
public
JSONObject
upload
(
public
JSONObject
upload
(
@RequestParam
(
"file"
)
MultipartFile
file
,
@RequestParam
(
"file"
)
MultipartFile
file
,
...
@@ -242,8 +55,7 @@ public class UploadController{
...
@@ -242,8 +55,7 @@ public class UploadController{
public
JSONObject
uploadFiles
(
public
JSONObject
uploadFiles
(
@RequestParam
(
"files"
)
MultipartFile
[]
files
,
@RequestParam
(
"files"
)
MultipartFile
[]
files
,
@RequestParam
(
value
=
"prefix"
,
defaultValue
=
"app"
)
String
prefix
@RequestParam
(
value
=
"prefix"
,
defaultValue
=
"app"
)
String
prefix
)
)
throws
Exception
{
throws
Exception
{
if
(
files
!=
null
&&
files
.
length
>
0
){
if
(
files
!=
null
&&
files
.
length
>
0
){
String
urls
=
""
;
String
urls
=
""
;
for
(
int
i
=
0
;
i
<
files
.
length
;
i
++){
for
(
int
i
=
0
;
i
<
files
.
length
;
i
++){
...
...
xx-universal/xx-universal-server/src/main/java/com/xxfc/platform/universal/service/UploadService.java
View file @
01e6f22f
package
com
.
xxfc
.
platform
.
universal
.
service
;
package
com
.
xxfc
.
platform
.
universal
.
service
;
import
com.github.wxiaoqi.security.common.util.process.SystemConfig
;
import
com.xxfc.platform.vehicle.constant.RedisKey
;
import
com.xxfc.platform.vehicle.constant.RedisKey
;
import
org.apache.commons.io.FileUtils
;
import
org.apache.commons.io.FileUtils
;
import
org.joda.time.DateTime
;
import
org.joda.time.DateTime
;
...
@@ -51,6 +52,7 @@ public class UploadService {
...
@@ -51,6 +52,7 @@ public class UploadService {
String
filePath
=
baseUploadPath
+
realFileRelPath
;
String
filePath
=
baseUploadPath
+
realFileRelPath
;
//将文件写入指定位置
//将文件写入指定位置
FileUtils
.
copyInputStreamToFile
(
file
.
getInputStream
(),
new
File
(
filePath
));
FileUtils
.
copyInputStreamToFile
(
file
.
getInputStream
(),
new
File
(
filePath
));
realFileRelPath
=
SystemConfig
.
XXMP_URL
+
realFileRelPath
;
return
realFileRelPath
;
return
realFileRelPath
;
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment