我有以下代码:
if (formItems != null && formItems.size() > 0) {
// iterates over form's fields
for (FileItem item : formItems) {
// processes only fields that are not form fields
if (!item.isFormField()) {
String fileName = new File(item.getName()).getName();
String filePath = uploadPath + File.separator + fileName;
File storeFile = new File(filePath);
// saves the file on disk
item.write(storeFile);
session.setAttribute("image", fileName);
}
// processes only form fields
else {
String fieldname = item.getFieldName();
String fieldvalue = item.getString();
session.setAttribute(fieldname, fieldvalue);
}
}
}
我想首先检查是否附加了文件。如果已连接,则仅上载文件。我试过这个:
if(item==null)
但这不起作用。如何检查文件是否附加?我有一个文件字段:
<input type="file" name="image"/>
答案 0 :(得分:5)
item
永远不会null
。
只需检查FileItem#getName()
(文件名)是否为空和/或FileItem#getSize()
(文件大小)是否等于0
。
在您的特定情况下,使用<input type="file" name="image"/>
,即:
if (!item.isFormField()) {
if ("image".equals(item.getFieldName())) {
if (item.getName() == null || item.getName().isEmpty()) {
// No file was been selected.
}
if (item.getSize() == 0) {
// No file was been selected, or it was an empty file.
}
}
}
答案 1 :(得分:0)
您可以使用以下代码检查您的文件上传控件是否具有任何值。 filename
是我的文件上传控件的名称
if ("filename".equals(item.getFieldName()) && item.getSize() > 0) {
// your code here
} else {
// Exception handling as no file chosen/attached
}