1

次のコードがあります。

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"/>
4

2 に答える 2

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.
        }
    }
}
于 2013-04-23T14:37:37.923 に答える
0

次のコードを使用して、fileupload コントロールに値があるかどうかを確認できます。filename私のファイルアップロードコントロールの名前です

if ("filename".equals(item.getFieldName()) && item.getSize() > 0) {
    // your code here
} else {
    // Exception handling as no file chosen/attached
}
于 2020-04-21T18:26:43.967 に答える