有两个问题:
首先,您需要给该字段一个
name。然后它将成为请求参数名称。
<input type="file" id="sourceImage" name="sourceImage" />
其次,在根据commons fileupload
guide的
else情况下,您需要处理文件上传。您的代码当前忽略它们,仅执行sysout。
FileItem#isFormField()
if (item.isFormField()) { // Process regular form field (input type="text|radio|checkbox|etc", select, etc). String fieldname = item.getFieldName(); String fieldvalue = item.getString(); // ... (do your regular form field processing job here)} else { // Process form file field (input type="file"). String fieldname = item.getFieldName(); String filename = FilenameUtils.getName(item.getName()); // ... (do your uploaded file job here) File file = new File("D:/MyUploads/", filename); item.write(file);}请注意,您需要使用
FilenameUtils#getName()来提取文件名,因为MSIE浏览器会错误地沿着文件名发送完整的客户端文件路径。另请参阅CommonsFileUpload FAQ。
您还需要记住,这种方法将覆盖任何以前使用相同名称上传的文件。您可能需要在文件名中添加自动生成的后缀。



