Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
E
EncryptedFileSystem
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
zhangshuang
EncryptedFileSystem
Commits
e29aa13e
提交
e29aa13e
authored
3月 25, 2020
作者:
zhangshuang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
swagger和批量上传
上级
43c378c0
隐藏空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
212 行增加
和
87 行删除
+212
-87
ServerResponse.java
...n/java/com/zjty/efs/ftp/base/response/ServerResponse.java
+8
-0
FileDownLoadController.java
...a/com/zjty/efs/ftp/controller/FileDownLoadController.java
+3
-3
FileUploadController.java
...ava/com/zjty/efs/ftp/controller/FileUploadController.java
+12
-19
CheckChunkRequest.java
.../main/java/com/zjty/efs/ftp/entity/CheckChunkRequest.java
+18
-0
CheckChunkResponse.java
...main/java/com/zjty/efs/ftp/entity/CheckChunkResponse.java
+20
-0
MergeRequest.java
...p/src/main/java/com/zjty/efs/ftp/entity/MergeRequest.java
+20
-0
MergeResponse.java
.../src/main/java/com/zjty/efs/ftp/entity/MergeResponse.java
+8
-1
UploadRequest.java
.../src/main/java/com/zjty/efs/ftp/entity/UploadRequest.java
+21
-0
FileUploadService.java
...main/java/com/zjty/efs/ftp/service/FileUploadService.java
+7
-3
FileUploadServiceImpl.java
.../com/zjty/efs/ftp/service/impl/FileUploadServiceImpl.java
+95
-61
没有找到文件。
efs-ftp/src/main/java/com/zjty/efs/ftp/base/response/ServerResponse.java
浏览文件 @
e29aa13e
package
com
.
zjty
.
efs
.
ftp
.
base
.
response
;
package
com
.
zjty
.
efs
.
ftp
.
base
.
response
;
import
com.alibaba.fastjson.annotation.JSONField
;
import
com.alibaba.fastjson.annotation.JSONField
;
import
com.zjty.efs.misc.config.AutoDocument
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.Getter
;
import
static
com
.
zjty
.
efs
.
ftp
.
base
.
response
.
ResponseCode
.*;
import
static
com
.
zjty
.
efs
.
ftp
.
base
.
response
.
ResponseCode
.*;
...
@@ -14,23 +17,28 @@ import static com.zjty.efs.ftp.base.response.ResponseCode.*;
...
@@ -14,23 +17,28 @@ import static com.zjty.efs.ftp.base.response.ResponseCode.*;
*/
*/
@SuppressWarnings
({
"WeakerAccess"
,
"unused"
})
@SuppressWarnings
({
"WeakerAccess"
,
"unused"
})
@Getter
@Getter
@AutoDocument
@ApiModel
(
value
=
"响应体"
,
description
=
"封装好的响应体"
)
public
class
ServerResponse
<
T
>
{
public
class
ServerResponse
<
T
>
{
/**
/**
* 错误码
* 错误码
*/
*/
@JSONField
(
ordinal
=
1
)
@JSONField
(
ordinal
=
1
)
@ApiModelProperty
(
value
=
"code"
,
notes
=
"响应码"
,
example
=
"200"
)
private
Integer
code
;
private
Integer
code
;
/**
/**
* 提示信息
* 提示信息
*/
*/
@JSONField
(
ordinal
=
2
)
@JSONField
(
ordinal
=
2
)
@ApiModelProperty
(
value
=
"msg"
,
notes
=
"返回响应信息"
,
example
=
"success"
)
private
String
msg
;
private
String
msg
;
/**
/**
* 具体的内容
* 具体的内容
*/
*/
@JSONField
(
ordinal
=
3
)
@JSONField
(
ordinal
=
3
)
@ApiModelProperty
(
value
=
"data"
,
notes
=
"实际返回数据"
,
example
=
"123"
)
private
T
data
;
private
T
data
;
/* 以下为返回成功响应结果的各类重载静态方法 */
/* 以下为返回成功响应结果的各类重载静态方法 */
...
...
efs-ftp/src/main/java/com/zjty/efs/ftp/controller/FileDownLoadController.java
浏览文件 @
e29aa13e
...
@@ -26,9 +26,9 @@ public class FileDownLoadController {
...
@@ -26,9 +26,9 @@ public class FileDownLoadController {
@GetMapping
(
"/download/{fileName}"
)
@GetMapping
(
"/download/{fileName}"
)
@ApiOperation
(
value
=
"文件下载"
,
notes
=
"通过文件名称下载文件"
)
@ApiOperation
(
value
=
"文件下载"
,
notes
=
"通过文件名称下载文件"
)
@ApiImplicitParams
({
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"fileName"
,
value
=
"文件名称"
,
paramType
=
"
String
"
,
example
=
"1.zip"
,
required
=
true
),
@ApiImplicitParam
(
name
=
"fileName"
,
value
=
"文件名称"
,
paramType
=
"
query
"
,
example
=
"1.zip"
,
required
=
true
),
@ApiImplicitParam
(
name
=
"response"
,
value
=
"响应对象"
,
paramType
=
"
HttpServletResponse
"
,
required
=
true
),
@ApiImplicitParam
(
name
=
"response"
,
value
=
"响应对象"
,
paramType
=
"
query
"
,
required
=
true
),
@ApiImplicitParam
(
name
=
"request"
,
value
=
"请求对象"
,
paramType
=
"
HttpServletRequest
"
,
required
=
true
),
@ApiImplicitParam
(
name
=
"request"
,
value
=
"请求对象"
,
paramType
=
"
query
"
,
required
=
true
),
})
})
public
void
fileDownLoad
(
@PathVariable
(
"fileName"
)
String
fileName
,
HttpServletResponse
response
,
HttpServletRequest
request
){
public
void
fileDownLoad
(
@PathVariable
(
"fileName"
)
String
fileName
,
HttpServletResponse
response
,
HttpServletRequest
request
){
...
...
efs-ftp/src/main/java/com/zjty/efs/ftp/controller/FileUploadController.java
浏览文件 @
e29aa13e
package
com
.
zjty
.
efs
.
ftp
.
controller
;
package
com
.
zjty
.
efs
.
ftp
.
controller
;
import
com.zjty.efs.ftp.base.response.ServerResponse
;
import
com.zjty.efs.ftp.base.response.ServerResponse
;
import
com.zjty.efs.ftp.entity.MergeRequest
;
import
com.zjty.efs.ftp.entity.UploadRequest
;
import
com.zjty.efs.ftp.service.FileUploadService
;
import
com.zjty.efs.ftp.service.FileUploadService
;
import
com.zjty.efs.misc.config.AutoDocument
;
import
com.zjty.efs.misc.config.AutoDocument
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
...
@@ -12,6 +14,7 @@ import org.springframework.web.bind.annotation.*;
...
@@ -12,6 +14,7 @@ import org.springframework.web.bind.annotation.*;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.List
;
@AutoDocument
@AutoDocument
@RestController
@RestController
...
@@ -36,7 +39,7 @@ public class FileUploadController {
...
@@ -36,7 +39,7 @@ public class FileUploadController {
@ResponseBody
@ResponseBody
@ApiOperation
(
value
=
"文件检查"
,
notes
=
"检查文件存在与否"
)
@ApiOperation
(
value
=
"文件检查"
,
notes
=
"检查文件存在与否"
)
@ApiImplicitParams
({
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"md5File"
,
value
=
"md5生成的文件名称"
,
paramType
=
"
String
"
,
required
=
true
)
@ApiImplicitParam
(
name
=
"md5File"
,
value
=
"md5生成的文件名称"
,
paramType
=
"
query
"
,
required
=
true
)
})
})
public
ServerResponse
checkFile
(
@RequestParam
(
value
=
"md5File"
)
String
md5File
)
{
public
ServerResponse
checkFile
(
@RequestParam
(
value
=
"md5File"
)
String
md5File
)
{
return
fileUploadService
.
checkFile
(
md5File
);
return
fileUploadService
.
checkFile
(
md5File
);
...
@@ -50,8 +53,8 @@ public class FileUploadController {
...
@@ -50,8 +53,8 @@ public class FileUploadController {
@ResponseBody
@ResponseBody
@ApiOperation
(
value
=
"分片检查"
,
notes
=
"检查分片存不存在"
)
@ApiOperation
(
value
=
"分片检查"
,
notes
=
"检查分片存不存在"
)
@ApiImplicitParams
({
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"md5File"
,
value
=
"md5生成的文件名称"
,
paramType
=
"
String
"
,
required
=
true
),
@ApiImplicitParam
(
name
=
"md5File"
,
value
=
"md5生成的文件名称"
,
paramType
=
"
query
"
,
required
=
true
),
@ApiImplicitParam
(
name
=
"chunk"
,
value
=
"分片名称"
,
paramType
=
"
Integer
"
,
required
=
true
)
@ApiImplicitParam
(
name
=
"chunk"
,
value
=
"分片名称"
,
paramType
=
"
query
"
,
required
=
true
)
})
})
public
ServerResponse
checkChunk
(
@RequestParam
(
value
=
"md5File"
)
String
md5File
,
public
ServerResponse
checkChunk
(
@RequestParam
(
value
=
"md5File"
)
String
md5File
,
@RequestParam
(
value
=
"chunk"
)
Integer
chunk
)
{
@RequestParam
(
value
=
"chunk"
)
Integer
chunk
)
{
...
@@ -63,17 +66,12 @@ public class FileUploadController {
...
@@ -63,17 +66,12 @@ public class FileUploadController {
* 修改上传
* 修改上传
*/
*/
@PostMapping
(
"/upload"
)
@PostMapping
(
"/upload"
)
@ResponseBody
@ApiOperation
(
value
=
"文件上传"
,
notes
=
"上传文件,支持断点续传"
)
@ApiOperation
(
value
=
"文件上传"
,
notes
=
"上传文件,支持断点续传"
)
@ApiImplicitParams
({
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"md5File"
,
value
=
"md5生成的文件名称"
,
paramType
=
"String"
,
required
=
true
),
@ApiImplicitParam
(
name
=
"uploadRequests"
,
value
=
"上传文件的集合"
,
paramType
=
"query"
,
required
=
true
)
@ApiImplicitParam
(
name
=
"chunk"
,
value
=
"分片名称"
,
paramType
=
"Integer"
,
required
=
true
),
@ApiImplicitParam
(
name
=
"file"
,
value
=
"文件"
,
paramType
=
"MultipartFile"
,
required
=
true
)
})
})
public
ServerResponse
upload
(
@RequestParam
(
value
=
"file"
)
MultipartFile
file
,
public
ServerResponse
upload
(
@RequestBody
List
<
UploadRequest
>
uploadRequests
)
{
//第几片,从0开始
@RequestParam
(
value
=
"md5File"
)
String
md5File
,
return
fileUploadService
.
upload
(
uploadRequests
);
@RequestParam
(
value
=
"chunk"
,
required
=
false
)
Integer
chunk
)
{
//第几片,从0开始
return
fileUploadService
.
upload
(
file
,
md5File
,
chunk
);
}
}
/**
/**
...
@@ -81,17 +79,12 @@ public class FileUploadController {
...
@@ -81,17 +79,12 @@ public class FileUploadController {
* 合成分片
* 合成分片
*/
*/
@PostMapping
(
"/merge"
)
@PostMapping
(
"/merge"
)
@ResponseBody
@ApiOperation
(
value
=
"合成分片"
,
notes
=
"合成所有分片"
)
@ApiOperation
(
value
=
"合成分片"
,
notes
=
"合成所有分片"
)
@ApiImplicitParams
({
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"md5File"
,
value
=
"md5生成的文件名称"
,
paramType
=
"String"
,
required
=
true
),
@ApiImplicitParam
(
name
=
"mergeRequests"
,
value
=
"需要分片合成的集合"
,
paramType
=
"query"
,
required
=
true
)
@ApiImplicitParam
(
name
=
"chunk"
,
value
=
"最后的分片名称"
,
paramType
=
"Integer"
,
required
=
true
),
@ApiImplicitParam
(
name
=
"file"
,
value
=
"文件"
,
paramType
=
"MultipartFile"
,
required
=
true
)
})
})
public
ServerResponse
merge
(
@RequestParam
(
value
=
"chunks"
,
required
=
false
)
Integer
chunks
,
public
ServerResponse
merge
(
@RequestBody
List
<
MergeRequest
>
mergeRequests
){
@RequestParam
(
value
=
"md5File"
)
String
md5File
,
return
fileUploadService
.
merge
(
mergeRequests
);
@RequestParam
(
value
=
"name"
)
String
name
){
return
fileUploadService
.
merge
(
chunks
,
md5File
,
name
);
}
}
}
}
efs-ftp/src/main/java/com/zjty/efs/ftp/entity/CheckChunkRequest.java
0 → 100644
浏览文件 @
e29aa13e
package
com
.
zjty
.
efs
.
ftp
.
entity
;
import
com.zjty.efs.misc.config.AutoDocument
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
@AutoDocument
@AllArgsConstructor
@NoArgsConstructor
@Data
public
class
CheckChunkRequest
{
@ApiModelProperty
(
value
=
"md5File"
,
notes
=
"md5生成的文件夹名称"
)
private
String
md5File
;
@ApiModelProperty
(
value
=
"chunk"
,
notes
=
"当前分片"
)
private
Integer
chunk
;
}
efs-ftp/src/main/java/com/zjty/efs/ftp/entity/CheckChunkResponse.java
0 → 100644
浏览文件 @
e29aa13e
package
com
.
zjty
.
efs
.
ftp
.
entity
;
import
com.zjty.efs.misc.config.AutoDocument
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
@AutoDocument
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
CheckChunkResponse
{
@ApiModelProperty
(
value
=
"md5File"
,
notes
=
"md5生成的文件夹名称"
)
private
String
md5File
;
@ApiModelProperty
(
value
=
"chunk"
,
notes
=
"当前分片"
)
private
Integer
chunk
;
@ApiModelProperty
(
value
=
"exist"
,
notes
=
"是否存在 0-不存在 1-存在"
)
private
Integer
exist
;
}
efs-ftp/src/main/java/com/zjty/efs/ftp/entity/MergeRequest.java
0 → 100644
浏览文件 @
e29aa13e
package
com
.
zjty
.
efs
.
ftp
.
entity
;
import
com.zjty.efs.misc.config.AutoDocument
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
@AutoDocument
@AllArgsConstructor
@NoArgsConstructor
@Data
public
class
MergeRequest
{
@ApiModelProperty
(
value
=
"name"
,
notes
=
"合成后的文件名称"
)
private
String
name
;
//文件
@ApiModelProperty
(
value
=
"md5File"
,
notes
=
"MD5生成的文件夹名称"
,
example
=
"fc44454f994403b01b40895f0a6535b5"
)
private
String
md5File
;
//md5文件
@ApiModelProperty
(
value
=
"chuck"
,
notes
=
"当前分片"
,
example
=
"1"
)
private
Integer
chuck
;
//分片
}
efs-ftp/src/main/java/com/zjty/efs/ftp/entity/
FileReturn
.java
→
efs-ftp/src/main/java/com/zjty/efs/ftp/entity/
MergeResponse
.java
浏览文件 @
e29aa13e
package
com
.
zjty
.
efs
.
ftp
.
entity
;
package
com
.
zjty
.
efs
.
ftp
.
entity
;
import
com.zjty.efs.misc.config.AutoDocument
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
lombok.NoArgsConstructor
;
@AutoDocument
@AllArgsConstructor
@AllArgsConstructor
@NoArgsConstructor
@NoArgsConstructor
@Data
@Data
public
class
FileReturn
{
public
class
MergeResponse
{
@ApiModelProperty
(
value
=
"name"
,
notes
=
"上传文件名称"
,
example
=
"1.zip"
)
private
String
name
;
//上传文件的名称
private
String
name
;
//上传文件的名称
@ApiModelProperty
(
value
=
"path"
,
notes
=
"上传文件服务器中存储地址"
,
example
=
"D://file/uploads/1.zip"
)
private
String
path
;
//上传文件的地址
private
String
path
;
//上传文件的地址
@ApiModelProperty
(
value
=
"saveSuccess"
,
notes
=
"文件保存是否成功 0-失败 1-成功"
,
example
=
"1"
)
private
int
saveSuccess
;
//文件保存是否成功 0-失败 1-成功
}
}
efs-ftp/src/main/java/com/zjty/efs/ftp/entity/UploadRequest.java
0 → 100644
浏览文件 @
e29aa13e
package
com
.
zjty
.
efs
.
ftp
.
entity
;
import
com.zjty.efs.misc.config.AutoDocument
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
org.springframework.web.multipart.MultipartFile
;
@AutoDocument
@AllArgsConstructor
@NoArgsConstructor
@Data
public
class
UploadRequest
{
@ApiModelProperty
(
value
=
"multipartFile"
,
notes
=
"文件数据"
)
private
MultipartFile
multipartFile
;
//文件
@ApiModelProperty
(
value
=
"md5File"
,
notes
=
"MD5生成的文件夹名称"
,
example
=
"fc44454f994403b01b40895f0a6535b5"
)
private
String
md5File
;
//md5文件
@ApiModelProperty
(
value
=
"chuck"
,
notes
=
"当前分片"
,
example
=
"1"
)
private
Integer
chuck
;
//分片
}
efs-ftp/src/main/java/com/zjty/efs/ftp/service/FileUploadService.java
浏览文件 @
e29aa13e
...
@@ -2,9 +2,13 @@ package com.zjty.efs.ftp.service;
...
@@ -2,9 +2,13 @@ package com.zjty.efs.ftp.service;
import
com.zjty.efs.ftp.base.response.ServerResponse
;
import
com.zjty.efs.ftp.base.response.ServerResponse
;
import
com.zjty.efs.ftp.entity.CheckChunkRequest
;
import
com.zjty.efs.ftp.entity.MergeRequest
;
import
com.zjty.efs.ftp.entity.UploadRequest
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.List
;
public
interface
FileUploadService
{
public
interface
FileUploadService
{
...
@@ -25,18 +29,18 @@ public interface FileUploadService {
...
@@ -25,18 +29,18 @@ public interface FileUploadService {
* @author zs
* @author zs
* 检查分片存不存在
* 检查分片存不存在
*/
*/
ServerResponse
checkChunk
(
String
md5File
,
Integer
chunk
);
ServerResponse
checkChunk
(
List
<
CheckChunkRequest
>
checkChunkRequests
);
/**
/**
* @author zs
* @author zs
* 修改上传
* 修改上传
*/
*/
ServerResponse
upload
(
MultipartFile
file
,
String
md5File
,
Integer
chunk
);
ServerResponse
upload
(
List
<
UploadRequest
>
uploadRequests
);
/**
/**
* @author zs
* @author zs
* 合成分片
* 合成分片
*/
*/
ServerResponse
merge
(
Integer
chunks
,
String
md5File
,
String
name
);
ServerResponse
merge
(
List
<
MergeRequest
>
uploadRequests
);
}
}
efs-ftp/src/main/java/com/zjty/efs/ftp/service/impl/FileUploadServiceImpl.java
浏览文件 @
e29aa13e
package
com
.
zjty
.
efs
.
ftp
.
service
.
impl
;
package
com
.
zjty
.
efs
.
ftp
.
service
.
impl
;
import
com.zjty.efs.ftp.base.response.ServerResponse
;
import
com.zjty.efs.ftp.base.response.ServerResponse
;
import
com.zjty.efs.ftp.entity.
FileReturn
;
import
com.zjty.efs.ftp.entity.
*
;
import
com.zjty.efs.ftp.service.FileUploadService
;
import
com.zjty.efs.ftp.service.FileUploadService
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.beans.factory.annotation.Value
;
...
@@ -30,14 +30,14 @@ public class FileUploadServiceImpl implements FileUploadService {
...
@@ -30,14 +30,14 @@ public class FileUploadServiceImpl implements FileUploadService {
@Override
@Override
public
ServerResponse
fileUpload
(
HttpServletRequest
request
)
{
public
ServerResponse
fileUpload
(
HttpServletRequest
request
)
{
List
<
MultipartFile
>
multipartFiles
=
((
MultipartHttpServletRequest
)
request
).
getFiles
(
"file"
);
List
<
MultipartFile
>
multipartFiles
=
((
MultipartHttpServletRequest
)
request
).
getFiles
(
"file"
);
List
<
FileReturn
>
fileReturns
=
new
ArrayList
<>();
List
<
MergeResponse
>
fileReturns
=
new
ArrayList
<>();
if
(
multipartFiles
!=
null
&&
multipartFiles
.
size
()
!=
0
){
if
(
multipartFiles
!=
null
&&
multipartFiles
.
size
()
!=
0
){
for
(
MultipartFile
multipartFile:
multipartFiles
){
for
(
MultipartFile
multipartFile:
multipartFiles
){
InputStream
is
=
null
;
InputStream
is
=
null
;
BufferedInputStream
bis
=
null
;
BufferedInputStream
bis
=
null
;
FileOutputStream
fos
=
null
;
FileOutputStream
fos
=
null
;
BufferedOutputStream
bos
=
null
;
BufferedOutputStream
bos
=
null
;
FileReturn
fileReturn
=
new
FileReturn
();
MergeResponse
fileReturn
=
new
MergeResponse
();
String
sourceName
=
multipartFile
.
getOriginalFilename
();
String
sourceName
=
multipartFile
.
getOriginalFilename
();
String
suffix
=
sourceName
.
substring
(
sourceName
.
lastIndexOf
(
"."
));
String
suffix
=
sourceName
.
substring
(
sourceName
.
lastIndexOf
(
"."
));
String
fileName
=
UUID
.
randomUUID
().
toString
()
+
suffix
;
String
fileName
=
UUID
.
randomUUID
().
toString
()
+
suffix
;
...
@@ -94,79 +94,113 @@ public class FileUploadServiceImpl implements FileUploadService {
...
@@ -94,79 +94,113 @@ public class FileUploadServiceImpl implements FileUploadService {
}
}
@Override
@Override
public
ServerResponse
checkChunk
(
String
md5File
,
Integer
chunk
)
{
public
ServerResponse
checkChunk
(
List
<
CheckChunkRequest
>
checkChunkRequests
)
{
Boolean
exist
=
false
;
List
<
CheckChunkResponse
>
chunkResponses
=
new
ArrayList
<>();
//String path = "D:/webuploader/"+md5File+"/";
if
(
checkChunkRequests
!=
null
&&
checkChunkRequests
.
size
()
!=
0
){
String
chunkPath
=
fileAddress
+
"/"
+
md5File
+
"/"
;
//分片存放目录
for
(
CheckChunkRequest
chunkRequest:
checkChunkRequests
){
String
chunkName
=
chunk
+
".tmp"
;
//分片名
String
md5File
=
chunkRequest
.
getMd5File
();
File
file
=
new
File
(
chunkPath
+
chunkName
);
Integer
chunk
=
chunkRequest
.
getChunk
();
if
(
file
.
exists
())
{
CheckChunkResponse
chunkResponse
=
new
CheckChunkResponse
();
exist
=
true
;
chunkResponse
.
setChunk
(
chunk
);
chunkResponse
.
setMd5File
(
md5File
);
Integer
exist
=
0
;
String
chunkPath
=
fileAddress
+
"/"
+
md5File
+
"/"
;
//分片存放目录
String
chunkName
=
chunk
+
".tmp"
;
//分片名
File
file
=
new
File
(
chunkPath
+
chunkName
);
if
(
file
.
exists
())
{
exist
=
1
;
}
chunkResponse
.
setExist
(
exist
);
}
}
}
return
ServerResponse
.
success
(
exist
);
return
ServerResponse
.
success
(
chunkResponses
);
}
}
@Override
@Override
public
ServerResponse
upload
(
MultipartFile
file
,
String
md5File
,
Integer
chunk
)
{
public
ServerResponse
upload
(
List
<
UploadRequest
>
uploadRequests
)
{
//String path = "D:/webuploader/"+md5File+"/";
if
(
uploadRequests
!=
null
&&
uploadRequests
.
size
()
!=
0
){
String
chunkPath
=
fileAddress
+
"/"
+
md5File
+
"/"
;
//分片存放目录
for
(
UploadRequest
uploadRequest:
uploadRequests
){
File
dirFile
=
new
File
(
chunkPath
);
String
md5File
=
uploadRequest
.
getMd5File
();
if
(!
dirFile
.
exists
())
{
//目录不存在,创建目录
Integer
chunk
=
uploadRequest
.
getChuck
();
dirFile
.
mkdirs
();
MultipartFile
file
=
uploadRequest
.
getMultipartFile
();
}
String
chunkPath
=
fileAddress
+
"/"
+
md5File
+
"/"
;
//分片存放目录
String
chunkName
;
File
dirFile
=
new
File
(
chunkPath
);
if
(
chunk
==
null
)
{
//表示是小文件,还没有一片
if
(!
dirFile
.
exists
())
{
//目录不存在,创建目录
chunkName
=
"0.tmp"
;
dirFile
.
mkdirs
();
}
else
{
}
chunkName
=
chunk
+
".tmp"
;
String
chunkName
;
}
if
(
chunk
==
null
)
{
//表示是小文件,还没有一片
String
filePath
=
chunkPath
+
chunkName
;
chunkName
=
"0.tmp"
;
File
saveFile
=
new
File
(
filePath
);
}
else
{
try
{
chunkName
=
chunk
+
".tmp"
;
if
(!
saveFile
.
exists
())
{
}
saveFile
.
createNewFile
();
//文件不存在,则创建
String
filePath
=
chunkPath
+
chunkName
;
File
saveFile
=
new
File
(
filePath
);
try
{
if
(!
saveFile
.
exists
())
{
saveFile
.
createNewFile
();
//文件不存在,则创建
}
file
.
transferTo
(
saveFile
);
//将文件保存
}
catch
(
IOException
e
)
{
log
.
error
(
filePath
+
"文件没有保存"
);
}
}
}
file
.
transferTo
(
saveFile
);
//将文件保存
}
catch
(
IOException
e
)
{
return
ServerResponse
.
error
(
"false"
);
}
}
return
ServerResponse
.
success
(
"true"
);
return
ServerResponse
.
success
(
"true"
);
}
}
@Override
@Override
public
ServerResponse
merge
(
Integer
chunks
,
String
md5File
,
String
name
)
{
public
ServerResponse
merge
(
List
<
MergeRequest
>
uploadRequests
)
{
FileOutputStream
fileOutputStream
=
null
;
//合成后的文件
List
<
MergeResponse
>
fileReturns
=
new
ArrayList
<>();
try
{
if
(
uploadRequests
!=
null
&&
uploadRequests
.
size
()
!=
0
){
fileOutputStream
=
new
FileOutputStream
(
fileAddress
+
"/"
+
name
);
for
(
MergeRequest
mergeRequest:
uploadRequests
){
}
catch
(
FileNotFoundException
e
)
{
MergeResponse
fileReturn
=
new
MergeResponse
();
e
.
printStackTrace
();
String
md5File
=
mergeRequest
.
getMd5File
();
}
Integer
chunks
=
mergeRequest
.
getChuck
();
try
{
String
name
=
mergeRequest
.
getName
();
byte
[]
buf
=
new
byte
[
1024
];
fileReturn
.
setName
(
name
);
//放入文件名称
for
(
long
i
=
0
;
i
<
chunks
;
i
++)
{
fileReturn
.
setPath
(
fileAddress
+
"/"
+
name
);
//文件存储地址
String
chunkFile
=
i
+
".tmp"
;
fileReturn
.
setSaveSuccess
(
1
);
//默认保存成功,如果失败,重新set为0
File
file
=
new
File
(
fileAddress
+
"/"
+
md5File
+
"/"
+
chunkFile
);
FileOutputStream
fileOutputStream
=
null
;
//合成后的文件
InputStream
inputStream
=
new
FileInputStream
(
file
);
try
{
int
len
=
0
;
fileOutputStream
=
new
FileOutputStream
(
fileAddress
+
"/"
+
name
);
while
((
len
=
inputStream
.
read
(
buf
))
!=
-
1
){
}
catch
(
FileNotFoundException
e
)
{
fileOutputStream
.
write
(
buf
,
0
,
len
);
e
.
printStackTrace
();
}
try
{
byte
[]
buf
=
new
byte
[
1024
];
for
(
long
i
=
0
;
i
<
chunks
;
i
++)
{
String
chunkFile
=
i
+
".tmp"
;
File
file
=
new
File
(
fileAddress
+
"/"
+
md5File
+
"/"
+
chunkFile
);
InputStream
inputStream
=
new
FileInputStream
(
file
);
int
len
=
0
;
while
((
len
=
inputStream
.
read
(
buf
))
!=
-
1
){
fileOutputStream
.
write
(
buf
,
0
,
len
);
}
inputStream
.
close
();
}
//删除md5目录,及临时文件
deleteFile
(
new
File
(
fileAddress
+
"/"
+
md5File
));
}
catch
(
Exception
e
)
{
fileReturn
.
setSaveSuccess
(
0
);
//保存失败
log
.
error
(
fileReturn
.
getPath
()
+
"文件保存失败"
);
}
finally
{
try
{
fileReturns
.
add
(
fileReturn
);
fileOutputStream
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
}
inputStream
.
close
();
}
//删除md5目录,及临时文件
deleteFile
(
new
File
(
fileAddress
+
"/"
+
md5File
));
}
catch
(
Exception
e
)
{
return
ServerResponse
.
error
(
"false"
);
}
finally
{
try
{
fileOutputStream
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
}
}
return
ServerResponse
.
success
(
"true"
);
return
ServerResponse
.
success
(
fileReturns
);
}
}
/**
* 删除文件夹下所有文件以及文件夹
* @param file
*/
public
static
void
deleteFile
(
File
file
){
public
static
void
deleteFile
(
File
file
){
//判断文件不为null或文件目录存在
//判断文件不为null或文件目录存在
if
(
file
==
null
||
!
file
.
exists
()){
if
(
file
==
null
||
!
file
.
exists
()){
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论