+ -
当前位置:首页 → 问答吧 → SWFupload 在Struts2下 :upload.parseRequest(request) 为空?

SWFupload 在Struts2下 :upload.parseRequest(request) 为空?

时间:2010-08-28

来源:互联网

//批量上传图片 SWFupload
public String UploadImgExecute()throws Exception{
//String msg = "err";
HttpServletRequest request = ServletActionContext.getRequest();
//定义磁盘工厂
DiskFileItemFactory factory = new DiskFileItemFactory();
// 设置内存缓冲区,超过后写入临时文件
factory.setSizeThreshold(10240000);
// 设置临时文件存储位置
String base = "d:/upload/bin";
//request.gets
File file = new File(base);
if(!file.exists())
file.mkdirs();
factory.setRepository(file);
ServletFileUpload upload = new ServletFileUpload(factory);
// 设置单个文件的最大上传值
upload.setFileSizeMax(10002400000l);
// 设置整个request的最大值
upload.setSizeMax(10002400000l);
upload.setHeaderEncoding("UTF-8");

try {
List items = upload.parseRequest(request);
FileItem item = null;
String fileName = null;

Iterator iter = items.iterator();  

while (iter.hasNext()) {  
item = (FileItem) iter.next(); 
//上传文件 
if (!item.isFormField()) { 
 
File uploadedFile = new File(base + File.separator + item.getName());  
item.write(uploadedFile);  
 
}
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}

作者: peipeitao   发布时间: 2010-08-28

遇到同样的问题了

作者: yodlove   发布时间: 2010-09-02

同样问题

作者: dhj125_ly926   发布时间: 2010-09-06

同样的问题 怎么 解决啊?

作者: f514077569   发布时间: 2010-09-13

在上传的过程中,当代码运行到List items = upload.parseRequest(request)这里时,发现items为空,检查程序后,没有问题,最后再网上看了一下原来是把web.xml中的

<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>
  </filter-mapping>

改成

<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>*.action</url-pattern>
  </filter-mapping>

问题就解决了

作者: f514077569   发布时间: 2010-09-13

难道是被过滤器过滤了File,好像不可能吧,为什么有的是正常的呢?

作者: Q_zx1bydcom   发布时间: 2010-09-20

引用 4 楼 f514077569 的回复:

在上传的过程中,当代码运行到List items = upload.parseRequest(request)这里时,发现items为空,检查程序后,没有问题,最后再网上看了一下原来是把web.xml中的

<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts……

我的就是这样配的,不行的

作者: zhang_kunlei   发布时间: 2010-09-26

上传页面的form里加上enctype="multipart/form-data"看看

作者: liufeng0209   发布时间: 2010-09-28

问题怎么解决,我把以上讲的都验证了,还是list.size()=0!!!!!!!!!!
急!!!!

作者: hahaizi_liu   发布时间: 2010-11-04

被 Fielter过滤了吧,在web.xml中将fielter注释掉就行了
XML code


<!-- 
    <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>
    </filter-mapping>

    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    -->
    
  <servlet>
    <servlet-name>UploadServlet</servlet-name>
    <servlet-class>com.chen.servlet.UploadServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>UploadServlet</servlet-name>
    <url-pattern>/UploadServlet</url-pattern>
  </servlet-mapping>
    <welcome-file-list>
        <welcome-file>login.jsp</welcome-file>
    </welcome-file-list>

作者: windindream   发布时间: 2010-12-19

去掉
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>

作者: RedFarmer   发布时间: 2011-03-18

一样的问题,求解决办法,还有一个问题request在哪定义的?我的是struts2

作者: q80409880   发布时间: 2011-04-17

该回复于2011-04-19 15:05:17被版主删除

  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • caijingli2
  • (caijingli2)
  • 等 级:
#13楼 得分:0回复于:2011-12-21 15:15:41
我也一样啊,求解决.这个问题都困扰了我好久了

作者: huang140465   发布时间: 2011-04-19