今天在页面提交到servlet上传时,遇到一小问题,
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setRepository(new File(tempPath));
ServletFileUpload upload = new ServletFileUpload(factory);
List<FileItem> fileItems = upload.parseRequest(req);
// 这里 fileItems一直为空
最后原因是被 web.xml中的 Filter过滤掉了
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<!-- <url-pattern>/*</url-pattern> -->
<url-pattern>*.action</url-pattern>
</filter-mapping>
分享到:
相关推荐
首先,让我们理解`fileList = upload.parseRequest(request);`这行代码在文件上传过程中的作用。`upload.parseRequest(request)`是`Commons FileUpload`库中的一个方法,它解析HTTP请求,从中提取出上传的文件信息。...
List<FileItem> items = upload.parseRequest(request); Iterator<FileItem> iter = items.iterator(); while (iter.hasNext()) { FileItem item = iter.next(); if (item.isFormField()) { // 处理普通表单...
然后,创建一个`ServletFileUpload`实例,并使用`parseRequest()`方法解析请求。这个方法会返回一个`FileItemIterator`,你可以遍历它来获取所有表单字段,包括文件和文本字段。 ```java import org.apache....
try {List items = upload.parseRequest(request);Iterator itr = items.iterator(); while (itr.hasNext()) {FileItem item = (FileItem) itr.next();if (item.isFormField()) { System.out.println("表单参数名:" ...
使用`ServletFileUpload.parseRequest(request)`解析请求中的文件项,然后遍历每个`FileItem`对象,对文件进行处理。如果是普通字段,直接获取值;如果是文件,可以调用`write()`方法将其保存到服务器。例如: ```...
- **处理上传**:如果请求是多部分的,使用`ServletFileUpload.parseRequest()`解析请求,获取`FileItem`对象列表。 - **保存文件**:遍历`FileItem`列表,对于表示文件的部分,将其写入服务器的指定位置。 ### 3. ...
List fileItems = upload.parseRequest(request); //开始读取上传信息 Iterator iter = fileItems.iterator(); // 依次处理每个上传的文件 while(iter.hasNext()) { FileItem item = (FileItem) iter.next(); // ...
List<FileItem> items = upload.parseRequest(request); for (FileItem item : items) { if (!item.isFormField()) { String fileName = item.getName(); // 保存文件到服务器 item.write(new File(...
上传文件+ajax进度条 FileItemFactory factory = new DiskFileItemFactory(); // 通过该工厂对象创建...List items = upload.parseRequest(request); for (Iterator i = items.iterator(); i.hasNext();) {
List<FileItem> list = upload.parseRequest(request); 每个FileItem对象对应一个表单项,包含了表单项的详细信息,例如字段名、文件名、文件内容、文件类型等。FileItem对象提供了多种方法,例如: * ...
items=upload.parseRequest (request).iterator(); while(items.hasNext()){ FileItem item=(FileItem) items.next(); if(!item.isFormField()){ String name=item.getName (); String fileName=name....
List<FileItem> items = upload.parseRequest(request); ``` ##### 示例3:控制文件大小 ```java // 创建基于磁盘的文件项工厂,并设置最大内存大小和临时目录 DiskFileItemFactory factory = new ...
List fileItems = upload.parseRequest(request); Iterator iter = fileItems.iterator(); while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); if (!item.isFormField()) { ...
List<FileItem> items = upload.parseRequest(request); for (FileItem item : items) { if (!item.isFormField()) { String fileName = new File(item.getName()).getName(); File storeFile = new File("/...
for (FileItem item : upload.parseRequest(request)) { if (!item.isFormField()) { // 判断是否为文件 String fileName = item.getName(); // 获取文件名 item.write(new File(uploadDirectory, fileName)); /...
List items = upload.parseRequest(request); // 循环处理文件上传 for (int i = 0; i < items.size(); i++) { FileItem item = (FileItem) items.get(i); // 将文件改名 String fileName = takeOutFileName...
List<FileItem> items = upload.parseRequest(request); for (FileItem item : items) { if (!item.isFormField()) { // 检查是否为文件字段 String fileName = new File(item.getName()).getName(); // 处理...
然后,你可以通过调用`ServletFileUpload.parseRequest()`方法解析请求,得到`FileItem`的集合。遍历这个集合,对于每个`FileItem`,如果它是文件,你可以通过`isFormField()`方法检查,然后使用`write()`方法将其...
// 创建文件上传解析器List<FileItem> items = upload.parseRequest(req); // 解析请求中的表单数据for (FileItem item : items) { if (!item.isFormField()) { // 如果不是普通表单字段,那么它就是一个文件字段...
List<FileItem> items = upload.parseRequest(request); for (FileItem item : items) { if (item.isFormField()) { // 处理普通文本字段 } else { // 处理上传的文件 String fileName = item.getName(); //...