【发布时间】:2016-06-02 20:20:21
【问题描述】:
我正在尝试在我的本地 spring java web 应用程序中上传一个 apk 文件,但由于校验和失败,文件的大小在上传后发生了变化。
基本上磁盘上文件的大小与我在应用程序中收到的文件大小不同。
我完全一无所知,我不知道如何继续调试。
PS:上传过程中创建的临时文件(tmp 文件夹)的大小比我最初上传的要大。
代码:
@RequestMapping(value = "/app", method = RequestMethod.POST, consumes = MediaType.MULTIPART_FORM_DATA)
public Application upload(@RequestParam(value = "apkFile", required=false) MultipartFile apkFile,
@RequestParam(value = "iconFile", required=false) MultipartFile iconFile,
@RequestParam Map<String, String> params, HttpServletRequest request,
Authentication authentication) {
//process
}
我使用的依赖项
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.5</version>
</dependency>
我使用的 HTML 代码:
上传文件请求页面
<form method="POST"
action="http://localhost:8080/devicemanagement_administration/admin/api/v1/application/app"
enctype="multipart/form-data">
type(binary,icon or screenshot): <input type="text" name="contentType"><br />
tenantId(ibm or google): <input type="text" name="tenantId"><br />
<br /> platform(android or ios): <input type="text" name="platform"><br />
File to upload: <input type="file" id="apkFile" name="apkFile"><br /> content
<br /> <input type="submit" value="Upload"> Press here to
upload the file!
</form>
</body>
</html>
PS:我尝试上传文本和json文件,上传后大小没有改变..只有大多数apk会导致问题。
【问题讨论】:
-
它们是两个不同的文件,或者您在接收上传的代码中做错了什么。第一遍尝试使用另一个文件 - 如果问题仍然存在,则服务器就是问题所在,否则您可能选择了错误的文件或覆盖了它。
-
添加了我在问题中使用的代码 sn-p。我在控件进入方法后通过放置断点检查文件的大小......有很多文件的大小不同,只有少数文件的大小没有改变。
-
我用的是tomcat 8.0.33和jdk 1.8,如果这个信息有用的话
-
表单(jsp或html)是否在编码部分有多个部分?
-
请张贴表单的 HTML 和未超出限制的check (SpringBoot documentation for example)