jen*_*fer 14 java jsp servlets multipartform-data
我需要上传图片:
<form method="post" action="hi.iq/register.jsp" enctype="multipart/form-data">
Name: <input type="text" name="name" value="J.Doe">
file: <input type="file" name="file-upload">
<input type="submit">
</form>
Run Code Online (Sandbox Code Playgroud)
在我的servlet中,我给了
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String name = request.getParameter("name");
System.out.println("user_id========= "+name);
Run Code Online (Sandbox Code Playgroud)
但是值的值name返回为NULL.
请帮助
Tho*_*mas 10
试试<input type="text" id="name" name="name" value="J.Doe">.
编辑:
使用Apache Commons Fileupload的示例,如David的回答所示:
FileItemFactory factory = new DiskFileItemFactory();
// Set factory constraints
// factory.setSizeThreshold(yourMaxMemorySize);
// factory.setRepository(yourTempDirectory);
// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload( factory );
// upload.setSizeMax(yourMaxRequestSize);
// Parse the request
List<FileItem> uploadItems = upload.parseRequest( request );
for( FileItem uploadItem : uploadItems )
{
if( uploadItem.isFormField() )
{
String fieldName = uploadItem.getFieldName();
String value = uploadItem.getString();
}
}
Run Code Online (Sandbox Code Playgroud)
尝试
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
Iterator<FileItem> iterator = upload.parseRequest(request).iterator();
File uploadedFile;
String dirPath="D:\fileuploads";
while (iterator.hasNext()) {
FileItem item = iterator.next();
if (!item.isFormField()) {
String fileNameWithExt = item.getName();
File filePath = new File(dirPath);
if (!filePath.exists()) {
filePath.mkdirs();
}
uploadedFile = new File(dirPath + "/" + fileNameWithExt);
item.write(uploadedFile);
}
else {
String otherFieldName = item.getFieldName();
String otherFieldValue = item.getString()
}
}
Run Code Online (Sandbox Code Playgroud)
它需要Apache commons-fileupload.jar和commons-io.jar
我使用的任何容器都不支持开箱即用的多部分编码请求.因此,它无法解析参数,您无法使用开箱即用的request.getParameter().
您需要在服务器端使用某些内容,如Apache Commons FileUpload来预处理请求
| 归档时间: |
|
| 查看次数: |
63631 次 |
| 最近记录: |