shi*_*bly 4 java post jsp file-upload request
<%
..... code to check request is submitted or not ...
%>
<form method="post" action="" name="uploadform" enctype="multipart/form-data">
<table >
<tr>
<td>Select up to 3 files to upload</td>
</tr>
<tr>
<td>
<input type="hidden" name="newFileName" value="newUploadedFileName1">
<input type="file" name="uploadfile" >
</td>
</tr>
<tr>
<td align="center">
<input type="submit" name="Submit" value="Upload">
<input type="reset" name="Reset" value="Cancel">
</td>
</tr>
</table>
</form>
Run Code Online (Sandbox Code Playgroud)
上传文件的jsp post请求代码将位于<%..%>标记中的同一页面中.
如何使用if语句添加检查以检查是否单击了"提交"按钮,换句话说,是否发送了发布请求.
我按照这个,http://www.java2s.com/Code/Java/JSP/SubmittingCheckBoxes.htm, 但它没有帮助,这是调用不同的页面中不同的jsp文件("formAction.jsp").
if(request.getParameter("newFileName") != null) {
Run Code Online (Sandbox Code Playgroud)
此语句始终为null值.我不知道为什么.
注意:它是具有此属性的表单=> enctype ="multipart/form-data"
如果我没有添加任何if语句,那么文件将首次上载,但下次如果我单击重新加载按钮或刷新页面,浏览器会提示我重新发送数据或重新上载以前的文件.我希望你能理解这个问题.如果有任何疑惑,请了解问题,请发表评论.
谁能提供一些提示/解决方案?
使用时multipart/form-data,请求的编码方式与application/x-www-form-urlencoded编码getParameter()所依赖的标准编码不同.这就是他们都归来的原因null.multipart/form-data在能够确定提交的值之前,您需要将请求解析为合理的对象.通常使用Apache Commons FileUpload或者request.getParts().有关详细信息,请查看此答案.
或者,您也可以检查请求方法.正常请求(链接,书签等)始终是GET.提交上传文件的表单始终是POST.
if ("POST".equalsIgnoreCase(request.getMethod())) {
// Form was submitted.
} else {
// It was likely a GET request.
}
Run Code Online (Sandbox Code Playgroud)
但这在JSP中没有任何意义.在JSP文件中编写原始Java代码是导致维护问题的原因.而是将表单提交给一个完整的servlet,然后实现该doPost()方法.在servlet中,您可以自由编写Java代码,而无需考虑所有HTML.
| 归档时间: |
|
| 查看次数: |
21668 次 |
| 最近记录: |