簡體   English   中英

如何將輸入值從jsp中的multipart / form-data傳遞到servlet?

[英]How to pass input value from multipart/form-data in jsp to servlet?

我知道這可能是一個重復的問題,我在互聯網上讀過類似的文章,但是我無法將輸入值從jsp發送到servlet。 我可以上傳文件,但是我需要發送輸入值。 Servlet:

try {
                FileItemIterator iterator = upload.getItemIterator(req);
                while (iterator.hasNext()) {
                    FileItemStream item = iterator.next();
                    InputStream in = item.openStream();


                        if (item.isFormField()) {
                            out.println("Got a form field: " + item.getFieldName());


                            } else {
                                String fieldName = item.getFieldName();
                                String fileName = item.getName();
                                String contentType = item.getContentType();
                                String fileNameWithOutExt = FilenameUtils.removeExtension(fileName);

                                out.println("--------------");
                                out.println("fileName = " + fileName);
                                out.println("Kind = " + fileNameWithOutExt);
                                out.println("field name = " + fieldName);
                                out.println("contentType = " + contentType);

                                String fileContents = null;
                                try {

                                    fileContents = IOUtils.toString(in);
                                    out.println("lenght: " + fileContents.length());

                                    String[] content = fileContents.split("\n");


                                    String[] property = content[0].split(",");

                                    out.println("lunghezza " + property.length);
                                    for (String propr : property) {
                                         out.println("prop: " + propr);
                                     }
                                    //out.println(Arrays.toString(property));
                                    //out.println(fileContents);
                                } finally {
                                    IOUtils.closeQuietly(in);
                                            }

                                    }
                                            }
                } catch (SizeLimitExceededException e) {
                    out.println("You exceeded the maximu size ("
                            + e.getPermittedSize() + ") of the file ("
                            + e.getActualSize() + ")");
                                                    }
            } catch (Exception ex) {

                throw new ServletException(ex);
                                }
                                                            }

那就是我的jsp

    <form action="/upload_kind" method="post"  enctype="multipart/form-data" >
<input type="file" name="file" size="50" />
<input type="text" name="namespace" id="namespace">
<br />
<input type="submit" value="Upload File" />
</form>

我讀到有關“ item.getString()”方法的信息,但它在DiskFileItem類中,而不在FileItemStream中,因此我可以看到發送了“命名空間”,但看不到它的值。 謝謝,我英語不好

通過重復的鏈接,我能夠解決我的問題。 我使用以下代碼:

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    try {
        List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
        for (FileItem item : items) {
            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 job here)
            } else {
                // Process form file field (input type="file").
                String fieldName = item.getFieldName();
                String fileName = FilenameUtils.getName(item.getName());
                InputStream fileContent = item.getInputStream();
                // ... (do your job here)
            }
        }
    } catch (FileUploadException e) {
        throw new ServletException("Cannot parse multipart request.", e);
    }

    // ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM