1

重複の可能性:
JSP /サーブレットを使用してサーバーにファイルをアップロードする方法は?

resumable.jsと一緒に使用されるfileuploadサーブレットを実装しています

ファイルを読み込もうとすると、読み取り中のファイル内に文字列を含むNoSuchElement例外またはNumberFormatExceptionが発生します。どこかでしゃっくりをしたと思いますが、分からないようです

これは、リクエストの読み取りとファイルへの書き込みに使用するもののスニペットです

if(ServletFileUpload.isMultipartContent(request)){
            DiskFileItemFactory factory = new DiskFileItemFactory();
            factory.setRepository(new File(temp_dir));
            ServletFileUpload upload = new ServletFileUpload(factory);

            Iterator<FileItem> iter = upload.parseRequest(request).iterator();
            FileItem item = iter.next();
            OutputStream out;

            try {

                out = new FileOutputStream(new File(dest_dir));
                IOUtils.copy(item.getInputStream(), out);
                logger.debug("Wrote file " + resumableIdentifier + " with chunk number "
                        + resumableChunkNumber + " to " + temp_dir);

            } catch (FileNotFoundException fnfe) {

                fnfe.printStackTrace();

            }
        }

コードにファイルの内容を実際に読み取って解釈させるという何か間違ったことをしましたか?

4

1 に答える 1

2

FileItemsを反復処理する必要があります。この行の直後:

Iterator<FileItem> iter = upload.parseRequest(request).iterator();

次のようなものが必要です。

File dir = new File(dest_dir);
if (!dir.isDirectory()) dir.mkdirs();
while(iter.hasNext()) {
    FileItem item = iter.next();

また、すべてのファイルアイテムの出力ストリームを閉じることを忘れないでください。

out = new FileOutputStream(new File(dir, item.getName()));
IOUtils.copy(item.getInputStream(), out);
out.close();
于 2013-01-25T20:08:04.653 に答える