0

索引.jsp

<h1>Uploadify Demo</h1>
        <form id="uploadForm">
            <div id="queue"></div>
            <input id="file_upload" name="file_upload" type="file" multiple="true">
            <input type="text" id="fileName" name="fileName"/>
        </form>

        <script type="text/javascript">

            $(function() {
                $('#file_upload').uploadify({                    
                    'swf'      : 'uploadify.swf',
                    'uploader' : '../upload',                   
                    'formData': { 'fileName': $('input:text[name:fileName]').val() }
                });
            });
        </script>

上传.java

  protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {

    final String UPLOAD_DIRECTORY = request.getSession().getServletContext().getRealPath("/upload");
    //process only if its multipart content
    if (ServletFileUpload.isMultipartContent(request)) {
        try {
            List<FileItem> multiparts = new ServletFileUpload(
                    new DiskFileItemFactory()).parseRequest(request);

            for (FileItem item : multiparts) {
                if (!item.isFormField()) {
                    String name = new File(item.getName()).getName();
                    item.write(new File(UPLOAD_DIRECTORY + File.separator + name));
                }else{
                System.out.print("Here 1 "+request.getParameter("fileName"));
                }

            }

            //File uploaded successfully
            request.setAttribute("message", "File Uploaded Successfully");
        } catch (Exception ex) {
            request.setAttribute("message", "File Upload Failed due to " + ex);
        }

    } else {
        request.setAttribute("message",
                "Sorry this Servlet only handles file upload request");

    }


   // request.getRequestDispatcher("/result.jsp").forward(request, response);


} catch (Exception e) {
    e.printStackTrace();
} finally {
    out.close();
}
 }

我总是得到Here 1 null,这意味着null价值fileName。任何人都可以帮助我弄清楚我应该怎么做才能正确获得价值。

4

1 回答 1

0

最后..经过大量谷歌搜索后,我找到了解决方案。所以,我分享的是一样的,以防万一将来有人需要同样的东西

我将其更改javascript为以下:

$(function() {
                $("#file_upload").uploadify({
                    'formData'      : {'fileName' : 'hello', 'fileNum' : 1},
                    'swf'           : 'uploadify.swf',
                    'uploader'      : '../upload',
                    'onUploadStart' : function(){
                        $("#file_upload").uploadify('settings','formData' ,{'fileNum': $('#fileNum').val()}); // to change value dynamically
                    }
                });
            });

并在上传 servlet 中添加了以下代码

if (item.isFormField()) {
    System.out.println(item.getFieldName()); // field name
   System.out.println(item.getString());  // and field value
   // Here we can retreive all the Form Data
   }
于 2013-10-13T11:12:39.057 回答