Java 如何将带有多个参数的图像上载到servlet
我想使用带有POST方法和Servlet的HTML表单上传图像和多个字段。一旦收到数据,数据将存储到数据库中。我搜索了,但只找到了只上传文件或字段的解决方案 例如: 文件:图像 字段:图像ID 字段:图像名称 等 如何创建表单和Servlet来实现这一点?基本上,您需要一个多部分/表单数据HTML表单来将数据发布到Servlet示例:Java 如何将带有多个参数的图像上载到servlet,java,image,servlets,Java,Image,Servlets,我想使用带有POST方法和Servlet的HTML表单上传图像和多个字段。一旦收到数据,数据将存储到数据库中。我搜索了,但只找到了只上传文件或字段的解决方案 例如: 文件:图像 字段:图像ID 字段:图像名称 等 如何创建表单和Servlet来实现这一点?基本上,您需要一个多部分/表单数据HTML表单来将数据发布到Servlet示例: <form action="file-upload" method="post" enctype="multipart/form-data" >
<form action="file-upload" method="post" enctype="multipart/form-data" >
<table>
<tr>
<td><input type="text" name="field1" /></td>
</tr>
<tr>
<td><input type="file" name="file1" /></td>
</tr>
<tr>
<td><input type="submit" value="Send" /></td>
</tr>
</table>
</form>
注意FileItem fi是包含字段信息的对象。对于该文件,您可以使用fi.getInputStream或fi.getString获取其内容,具体取决于您想要获取它的方式和数据量等。您可以创建一个formdata对象,并如图所示进行填充
然后作为请求参数检索,如String message=request.getParametermessage 参数是imageid,imagenameno我使用java和Servlet您知道javascript表单数据对象吗?但我想上传图像和字段从java@KarthikKeyan图像是文件输入类型=文件,字段是文本输入类型=文本。
@WebServlet(urlPatterns = { "/file-upload" } )
public class FileUpload extends HttpServlet
{
@Override
public void doPost(HttpServletRequest p_oRequest, HttpServletResponse p_oResponse) throws IOException
{
PrintWriter out = p_oResponse.getWriter();
out.println("<html><body>");
List fileItems = null;
// Parsing field values
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(10000000);
// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload(factory);
// maximum file size to be uploaded.
upload.setSizeMax(10000000);
try
{
// Parse the request to get file items.
fileItems = upload.parseRequest(p_oRequest);
// Process the uploaded file items
Iterator i = fileItems.iterator();
out.println("<table><tr><td>Type</td><td>Name</td><td>Value</td>");
while(i.hasNext())
{
FileItem fi = (FileItem)i.next();
out.println("<tr>");
if(fi.isFormField())
{
out.println("<td>Field</td>");
out.println("<td>" + fi.getFieldName() + "</td>");
out.println("<td>" + fi.getString() + "</td>");
}
else
{
out.println("<td>File</td>");
out.println("<td>" + fi.getFieldName() + "</td>");
out.println("<td>" + fi.getName() + " / " + fi.getContentType() + " / " + fi.getSize() + "</td>");
}
out.println("</tr>");
}
out.println("</table>");
}
catch(Exception e)
{
e.printStackTrace();
}
out.println("</body></html>");
out.flush();
}
}