Servlet
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.Iterator;
import java.util.List;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.*;
public class Apply extends HttpServlet
{
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
InputStreamReader input = new InputStreamReader(request.getInputStream());
BufferedReader buffer = new BufferedReader(input);
String line="";
line=buffer.readLine();
System.out.println("Multipart data " + line );
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if(isMultipart)
{
// upload file
}
else
{
// failed, no input
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
doPost(request, response);
}
}
JSP。
<form enctype="multipart/form-data" method="post" action="apply">
<fieldset>
<br/>
<legend>Upload</legend>
<br/>
<label>Select file to upload</label>
<input type="file" name="file" /><br />
<br/>
<a href="apply" class="jUiButton">Submit</a>
</fieldset>
</form>
<script>$(".jUiButton").button()</script>
boolean 值和输入总是验证为 false/null,我不明白为什么。遵循本指南:http://sacharya.com/file-upload/
在 web-inf/lib 中 - 我们有 commons-fileupload-1.2.2.jar 和 commons-io-2.0.1.jar。
有什么想法吗?
最佳答案
您实际上并未提交表单。您正在导航到带有 GET
的页面请求。
用提交按钮替换“提交” anchor :
<button type="submit" class="jUiButton">Submit</button>
您可以保留 <a>
但随后您必须使用 JavaScript 手动提交表单。
关于Java-文件上传问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5245231/