jsp - 如何在多部分发布请求中传递参数

标签 jsp servlets file-upload multipartform-data

小服务程序代码

request.getparameter("fname") //I can't able to get value.

HTML代码
 <html>
    <head>
    <title>File Uploading Form</title>
    </head>
    <body>
    <h3>File Upload:</h3>
    Select a file to upload: <br />
    <form action="UploadServlet" method="post"
                            enctype="multipart/form-data">
    <input type="text" name="fname" size="50" />   
 <input type="file" name="file" size="50" />
 <input type="submit" value="Upload File" />
    </form>
    </body>
    </html>  

我的问题是:如何通过fname多部分发布请求中的参数?

最佳答案

简答:您会找到 fnamePart s 的请求。

长答案:对于多部分类型的请求,即使是简单的 <input type="text">字段值放置在部分中。您将不得不遍历 Part HttpServletRequest.getParts() 返回的对象并根据他们的name处理他们属性(property):

for( Part p : request.getParts() ) {
    if( "fname".equals(p.getName()) ) {
        ...
    }
    else if( "file".equals(p.getName()) ) {
        ...
    }
}

更复杂的是,该部分的内容为 InputStream - Part.getInputStream() - 所以你必须做一些转换流 → byte[]String以获得值(value)。

关于jsp - 如何在多部分发布请求中传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20394292/

相关文章:

java - 在浏览器禁用 cookie 时管理 session

amazon-web-services - 超时后,AWS S3 是否会自动中止分段上传?

java - 在哪里创建文件夹

javascript - 如何将 JSP 中的 ResultSet 对象发送回 HTML (JavaScript)?

hibernate - javax.persistence.PersistenceException : Invalid persistence. xml

Java servlet 和数据库连接池

jsp - CQ从当前节点(当前组件)访问深层子节点的属性

java - 为什么在jsp上调用session会返回错误?

python - 如果不允许内容类型,如何丢弃上传的文件?

Angular/AWS S3-使用预签名的URL将文件上传到AWS S3