我正在尝试在Spring应用程序中实现文件上载功能。
目前,我使用HTML5表单的multiple
属性将多个文件发送到服务器。这些文件正在控制器,但是我将它们转移到服务器目的地时遇到了问题。
@RequestMapping(value = "/upload", method = RequestMethod.POST)
public String handleUpload(@RequestParam("files[]") List<MultipartFile> files, Model model) {
String fileName;
File transferFile;
String filePath = System.getProperty("catalina.base") + File.separator + "resources" + File.separator;
ArrayList<File> fileList = new ArrayList<File>(files.size());
ArrayList<String> fileNameList = new ArrayList<String>(files.size());
for (MultipartFile file : files) {
fileName = filePath + file.getOriginalFilename();
transferFile = new File(fileName);
fileNameList.add(fileName);
try {
if (transferFile.exists()) {
logger.info("Successful Transfer!");
file.transferTo(transferFile);
else
logger.info("Could not create file at " + fileName);
我省略了catch块和其他日志记录但是transferFile
对象已创建但该位置不存在。
如何在指定位置创建文件?
答案 0 :(得分:2)
检查你在配置文件spring.xml中的定义
<beans:bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- one of the properties available; the maximum file size in bytes --> <beans:property name="maxUploadSize" value="100000000" /> </beans:bean>
2.检查文件标记的名称属性,并在控制器方法handleUpload中使用它。
3.检查您是否在指定位置创建了文件,用户从中转移文件,即检查transferFile是否在目的地创建文件。