jQuery-uploadify3.2带有滚动条的文件上传

本文介绍了如何在使用jQuery-uploadify3.2进行文件上传时遇到HTTP 302错误的问题,特别是当服务器使用ngnix作为代理时。解决方案包括在上传设置中添加jsessionid参数,以及在ngnix配置中调整最大请求实体大小。此外,还展示了如何将Uploadify的英文错误提示改为中文。
摘要由CSDN通过智能技术生成
<link href="${ctx}/static/jQuery-uploadfy/uploadify.css" rel="stylesheet"></link>
<script type="text/javascript" src="${ctx}/static/jQuery-uploadfy/uploadify.min.js"></script>
<script type="text/javascript">
$(function() {
    $("#uploadify").uploadify({
     auto          : false,
     method        : 'post',
     swf           : '${ctx}/static/jQuery-uploadfy/uploadify.swf?ver='+Math.random(),
     //swf这样写才能调到后台的方法。
     uploader      : '${ctx}/medicalReport/extractZip;jsessionid=${pageContext.session.id}',
     //后面加上;jsessionid=${pageContext.session.id}是解决了在FireFox中上传报HTTP 302 的错误。丢失了jsessionid。
     fileObjName   :'zipFile',
     buttonText    : '点击选择Zip文件',  
     // 控制上传文件的大小
     fileSizeLimit     : 1024*1024*1024,
     queueID       : 'fileQueue',
     //控制要上传文件的队列中的个数
     queueSizeLimit : 1,
     //formData    : {'hospid':$("#selectid").val()},
    //静态传输数据的的话,就用formData
        //控制上传文件的类型
        fileTypeDesc  :'*.zip',
        fileTypeExts  :'*.zip',
        height        : 25,
        width         : 150,
        //当选择好一个要上传的文件的会触发的函数
        onSelect      : function(event,ID,fileObj){
             $("#msgSpan").html("");
         if($("#selectid").val()==""){
         $("#spid").html("还有没选择机构名称,无法进行上传.");
         $("#btn1").hide();
         }
        },
        onSelectError : function(file, errorCode, errorMsg) {
          //将自身报错的英文改为中文的提示。
         if(errorCode ==  SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT){
                  this.queueData.errorMsg = "上传的文件不可大于100M,如有必要,请拆分后重新上传";
                }
         if(errorCode == SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED){
             this.queueData.errorMsg = "一次只能上传一个Zip文件";
         }
           } 
        ,
       onUploadStart: function (file) {  
                    $("#uploadify").uploadify("settings", "formData", { 'hospid': $("#selectid").val() }); 
                    //向后台传动态数据的时候,使用该方法。
                },
           onUploadSuccess : function(file, data,response){
                 if(response == true){
                 $("#msgSpan").html(data.substring(15,data.lastIndexOf('",')));
               }
           }   }
    );
});
HTML代码:
<form action="medicalReport/extractZip"  name="extractZip" method="post" enctype="multipart/form-data">
  <table width="100%" border="0" cellspacing="0" cellpadding="0"
class="tab_02">
  <tr height="70">
  <td  align="left" colspan="2">机构名称:
<select id="selectid" name="hospid" οnchange="dispalyBtn()">
<option value="">请选择</option>
<c:forEach items="${liOrg}" var="liOrg" >
<option value="${liOrg.hospId}">${liOrg.hospName}</option>
</c:forEach>
</select>
</td>
  </tr>
  <tr height="70" >
  <td width="15%">上传zip文件:</td>
  <td><input type="file" name="zipFile" id="uploadify" multiple="true"/></td>
  </tr>
  <tr height="70">
  <td colspan="2">
   <span class="tjbg_ts">
    信息提示:请先确认机构名称,再上传ZIP文件,且文件小于100M。
   </span>
  </td>
  </tr>
    <tr height="70">
    <td colspan="2">
    <div id="fileQueue" style="width:300px"></div>
    </td>
    </tr>
    <tr height="30" align="left">
     <td colspan="2"><span id="msgSpan" style="color: red;"></span>       
        </td>       
    </tr> 
    <tr height="30" align="right">
        <td colspan="2">
        <input type="button" id="btn1" οnclick="javascript:$('#uploadify').uploadify('upload')" value="开始上传"><span id="spid" style="color: red;"></span></input> 
        </td>
    </tr> 
  </table>
</form>
本以为上线会没有BUG,但当QA上传大于8M的文件时就会提示HTTP ERROR 302,回来想想知道,公司的服务器上装有ngnix代理,所有的Http请求都会先经过ngnix,而ngnix默认最大的请求实体是8M,因此请求就直接给屏掉了,后来登上服务器修改了ngnix的配置文件,就OK啦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值