contentType:multipart/form-data;boundary=-------------111111111111111111
post的数据,服务器端输出 System.out .print(Utils.inputStream2String(request.getInputStream())); 有数据
但服务器端解析的时候为空
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
// 解决上传文件名的中文乱码
upload.setHeaderEncoding("UTF-8");
List<FileItem> list = upload.parseRequest(request); list 为空
求解
post的数据,服务器端输出 System.out .print(Utils.inputStream2String(request.getInputStream())); 有数据
但服务器端解析的时候为空
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
// 解决上传文件名的中文乱码
upload.setHeaderEncoding("UTF-8");
List<FileItem> list = upload.parseRequest(request); list 为空
求解
String FieldName) {
try {
System.out
.print(Utils.inputStream2String(request.getInputStream()));
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setFileSizeMax(10*1024*1024);
// 解决上传文件名的中文乱码
upload.setHeaderEncoding(AppConfig.DefaultEncoding);
List<FileItem> list = upload.parseRequest(request);
for (FileItem item : list) {
if (item.isFormField()) {
if (FieldName.equals(item.getFieldName())) {
return item.getName();
}
}
}
} catch (Exception e) {
String str = e.getLocalizedMessage();
System.out.print(str);
}
return null;
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<display-name>taigan_api</display-name>
<servlet>
<description>HelloWorldAction</description>
<servlet-name>HelloWorldAction</servlet-name>
<servlet-class>com.kunze.taigan.api.HelloWorldAction</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorldAction</servlet-name>
<url-pattern>/helloWorldAction.do</url-pattern>
</servlet-mapping>
</web-app>
还有个问题,请求的时候写的是 multipart/form-data;boundary=11111111
但是后台接受到的时候输出了一下,boundary就不是11111111了,而是 --FFghrP61JNhU8BMWUAZsJ3h62lIRdwuSi2xoBm(每次都不一样),也许这就是解析不出值的原因,但没找到改哪里。
所以后面parseRequest(request);已经没数据了