2013-10-07 180 views
1

我要上传大量的图片文件(最大大小为10MB) 对我使用下面的配置是struts.xml无法上传大文件

<interceptors> 
    <interceptor-stack name="fileUploadStack"> 
     <interceptor-ref name="exception" /> 
     <interceptor-ref name="alias" /> 
     <interceptor-ref name="servletConfig" /> 
     <interceptor-ref name="prepare" /> 
     <interceptor-ref name="i18n" /> 
     <interceptor-ref name="chain" /> 
     <interceptor-ref name="debugging" /> 
     <interceptor-ref name="profiling" /> 
     <interceptor-ref name="scopedModelDriven" /> 
     <interceptor-ref name="modelDriven" /> 
     <interceptor-ref name="fileUpload"> 
      <param name="maximumSize">10485760</param> 
      <param name="allowedTypes">image/jpg,image/jpeg,image/gif,image/png,image/pjpeg</param> 
     </interceptor-ref> 
     <interceptor-ref name="checkbox" /> 
     <interceptor-ref name="staticParams" /> 
     <interceptor-ref name="actionMappingParams" /> 
     <interceptor-ref name="params"> 
      <param name="excludeParams"> dojo\..*,^struts\..*</param> 
     </interceptor-ref> 
     <interceptor-ref name="conversionError" /> 
     <interceptor-ref name="validation"> 
      <param name="excludeMethods"> input,back,cancel,browse</param> 
     </interceptor-ref> 
     <interceptor-ref name="workflow"> 
      <param name="excludeMethods"> input,back,cancel,browse</param> 
     </interceptor-ref> 
    </interceptor-stack> 
</interceptors> 
    <action name="ownmessageswithimage" class="social.action.UserMessages" method="insertImage"> 
    <result name="success">/pages/profile/userSingleMessage.jsp</result> 
    <result name="input">/pages/errorpages/ajaxError.jsp</result> 
    <result name="login">/pages/pleaselogin.jsp</result> 
</action> 

编辑: 这是我的jsp文件代码

 <script type="text/javascript" src="js/jquery.form.js"></script> 
     <form id="own_message_post" action="ownmessageswithimage" method="post"> 
      <input id="fileupload" type="file" name="user_post_image" data-url="ownmessages" /> 
<textarea name="message" rows="4" cols="45" id="text_message_status" 
        ></textarea><br> 
        <input type="submit" value="Post" id="submit_form_button" 
        style="background:#004091;padding: 2px 20px 2px 20px;color: whitesmoke;font-weight: bold" /> 
     </form> 
     <script type="text/javascript"> 
      $('#own_message_post').ajaxForm(function(data) { 

       $('#fileupload').val(""); 

      }); 
     </script> 

我使用malsup异步文件上传脚本 但问题是,它没有上传大文件,高达10 MB。 如何使之成为可能。

+0

你只上传图片或其他东西? – Admit

+0

也上传文本数据 – xrcwrn

回答

0

我不确定它是否有帮助,但在客户端使用表单时,我使用了多部分加密来上传大文件。

这是从表单中的文件输入框中发送文件。 虽然我不确定struts。

1

你应该不断的添加到配置文件允许多内容大小可达10M

<constant name="struts.multipart.maxSize" value="10485760"/> 
+0

我在那里!你的回答对我很有帮助。你知道如何编辑默认错误信息吗?将struts.messages.error.file.too.large添加到global.properties文件不适用于我。 – tviana

+0

您可以尝试'struts.messages.error.uploading',但实际的消息是什么?此设置用于整体多部分请求。 –

+0

nop它不起作用:(它说:“他的请求被拒绝,因为它的大小(3172035)超过配置的最大值(2097152)”。我已经搜索整个项目,并且无法找到此消息。 – tviana

0

看来<param name="allowedTypes">image/jpg,image/jpeg,image/gif,image/png,image/pjpeg</param>允许你上传这种类型仅适用于图像。在那里添加另一个MIME类型,例如text/xmlany other types