我正在用Java实现HTTP服务器。目前,我正在实现一个POST请求处理程序。
我在解析" multipart / form-data"时遇到了问题。文件上传请求。我已经尝试了几个io流,但文件仍以乱码形式到达服务器。
我想知道什么是最好使用的API和一些链接来演示实际的文件上传方案,以便我能更好地理解。
答案 0 :(得分:1)
如果不是出于商业目的,您可以使用cos = multipart.jar文件。 您可以下载 here。 使用前请阅读licence。
首先在eclipse中复制项目webcontent的lib文件夹中的jar文件。 然后您可以按如下方式实现文件上传:
HTML / JSP代码:
<form action="Upload" method="post" enctype="multipart/form-data">
Select File:<input type="file" name="image"/><br/>
<input type="submit" Value="Go"/>
</form>
Servlet代码:
import java.io.*;
import javax.servlet.ServletException;
import javax.servlet.http.*;
import com.oreilly.servlet.MultipartRequest;
public class Upload extends HttpServlet
{
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
MultipartRequest m=new MultipartRequest(request,"D:/data");
out.print("successfully uploaded");
}
}
为了获取其他表单字段的值,请使用:
m.getParameter("param_name"); //m is the MultipartRequest object
而不是使用HttpServletRequest对象。
希望这可以解决。
答案 1 :(得分:0)
我使用Apache commons-fileupload,它完美无缺,
您可以在此链接中了解如何使用它:http://www.devmedia.com.br/upload-de-arquivos-usando-commons-fileupload/3572
这篇文章是葡萄牙文,如果你需要一些英文例子,请告诉我,我会做一个
我希望它有所帮助:D 最好的问候