<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啦。
jQuery-uploadify3.2带有滚动条的文件上传
本文介绍了如何在使用jQuery-uploadify3.2进行文件上传时遇到HTTP 302错误的问题,特别是当服务器使用ngnix作为代理时。解决方案包括在上传设置中添加jsessionid参数,以及在ngnix配置中调整最大请求实体大小。此外,还展示了如何将Uploadify的英文错误提示改为中文。
摘要由CSDN通过智能技术生成