我在网页做了添加跟修改,添加的时候上传图片没有任何问题,但是修改的时候就出现上传相关的问题了。
出现的问题如下:
1、<input type="file" name="file"/>   修改的时候如果不选择任何图片,点修改没有问题,但是一旦选择了图片后再点上传就上传不成功,测试后,这种情况action的result总是返回input,同时不会进入方法体去执行。2、没有任何异常抛出。struts.xml 修改相关配置部分:
<action name="mod_twoitem" class="mod_twoitem" method="mod_twoItem">
<interceptor-ref name="fileUpload">
     <param name="allowedTypes">image/bmp,image/png,image/gif,image/jpeg,image/jpg,image/x-png</param>
     <param name="maximumSize">1000000</param>
</interceptor-ref>
<result name="success" type="chain">
<param name="actionName">list_twoitem</param>
</result>
<param name="allowedTypes">image/bmp,image/png,image/gif,image/jpeg,image/jpg,image/x-png</param>
<param name="maximumSize">1000000</param>
<interceptor-ref name="defaultStack"></interceptor-ref>
<result name="input">/admin/mod_twoitem.jsp</result>
</action>说明一点的是,添加配置部分跟这个基本一样。整了一下午,唉,头都搞大了。

解决方案 »

  1.   

    form 里 enctype="multipart/form-data" 设置了吗?
      

  2.   

    form 里设置 enctype="multipart/form-data"
      

  3.   

    result总是返回input这个说明你给action提供的参数有问题
    可以用firebug 看下你的请求参数是什么
      

  4.   

    在struts.xml的<atruts>里面加一句
    <constant name="struts.multipart.maxSize" value="9000000"/>
    就好了
    如果不行,你把你的<param name="maximumSize">1000000</param>去掉再试试
      

  5.   

    把<interceptor-ref name="defaultStack"></interceptor-ref>
    放在<interceptor-ref name="fileUpload">前面自定义拦截器要放在默认拦截器后面,不然默认拦截器
    <interceptor-ref name="defaultStack"></interceptor-ref>
    这个效果就没了。好多strut2功能也实现不了了
      

  6.   

    在action的方法中try..catch..下并打印下错误信息,看是不是真的没有异常??