Java 文件分块上传服务器端源代码

本文展示了使用 Spring MVC 控制器处理客户端HTTP分块上传请求的源代码。在所有块上传完成后,源代码将临时文件从上传路径转移到服务器指定目录,如D:/defonds/syncPath/file,并在此生成子目录,最终组装成完整文件。
摘要由CSDN通过智能技术生成
        本博客将介绍如何进行文件的分块上传。如果读者还想了解文件的“分块”下载相关内容可以去参考博客《 Java 服务器端支持断点续传的源代码【支持快车、迅雷】》。
        本文侧重介绍服务器端,客户端端请参考本篇博客的姊妹篇《 Java 文件分块上传客户端源代码》,关于分块上传的思想及其流程,已在该博客中进行了详细说明,这里不再赘述。

        直接上代码。接收客户端 HTTP 分块上传请求的 Spring MVC 控制器源代码如下:

@Controller
public class UploadController extends BaseController {

	private static final Log log = LogFactory.getLog(UploadController.class);
	private UploadService uploadService;
	private AuthService authService;

	/**
	 * 大文件分成小文件块上传,一次传递一块,最后一块上传成功后,将合并所有已经上传的块,保存到File Server
	 * 上相应的位置,并返回已经成功上传的文件的详细属性. 当最后一块上传完毕,返回上传成功的信息。此时用getFileList查询该文件,
	 * 该文件的uploadStatus为2。client请自行处理该状态下文件如何显示。(for UPS Server)
	 * 
	 */
	@RequestMapping("/core/v1/file/upload")
	@ResponseBody
	public Object upload(HttpServletResponse response,
			@RequestParam(value = "client_id", required = false) String appkey,
			@RequestParam(value = "sig", required = false) String appsig,
			@RequestParam(value = "token", required = false) String token,
			@RequestParam(value = "uuid", required = false) String uuid,
			@RequestParam(value = "block", required = false) String blockIndex,
			@RequestParam(value = "file", required = false) MultipartFile multipartFile,
			@RequestParam Map<String, String> parameters) {

		checkEmpty(appkey, BaseException.ERROR_CODE_16002);
		checkEmpty(token, BaseException.ERROR_CODE_16007);
		checkEmpty(uuid, BaseException.ERROR_CODE_20016);
		checkEmpty(blockIndex, BaseException.ERROR_CODE_20006);
		checkEmpty(appsig, BaseException.ERROR_CODE_10010);
		if (multipartFile == null) {
			throw new BaseException(BaseException.ERROR_CODE_20020);// 上传文件不存在
		}
		Long uuidL = parseLong(uuid, BaseException.ERROR_CODE_20016);
		Integer blockIndexI = parseInt(blockIndex, BaseException.ERROR_CODE_20006);
		
		Map<String, Object> appMap = getAu
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值