Ajax雖然不錯,但無法上傳圖片文件,可以用隱藏的 IFrame 提交表單部分替代Ajax。
直接上代碼:
jsp中代碼:
<script type="text/javascript">
function callback(msg)
{
if(msg=="00"){
alert("上傳失敗,請按模版格式重新上傳!");
return;
}else if(msg!="null"){
window.returnValue='http://localhost:8888/wlgl/uploadFile/'+msg
window.close();
}
}
</script>
<h5>文件上傳</h5><hr/>
<form id="file_upload_id" name="file_upload_name" action="../wlgl/fileUpload.do" method="post" enctype="multipart/form-data" target="hidden_frame">
<input type="hidden" name="functionId" value="${functionId}"/>
<input type="hidden" name="fileType" value="${fileType}"/>
<input type="hidden" name="maxSize" value="${maxSize}"/>
<div><input type="file" name="file_upload"/></div>
<c:if test="${functionId!=null}">
<div style="font: 12">文件類型${functionId}</div>
</c:if>
<c:if test="${maxSize!=null}">
<div style="font: 12">文件最大不能超過${maxSize}MB</div>
</c:if>
<c:if test="${fileType!=null}">
<div style="font: 12">文件格式必須是:${fileType}</div>
</c:if>
<div><input type="submit" value="上傳"/></div>
<iframe name='hidden_frame' id="hidden_frame" style='display:none'></iframe>
</form>
Java servlet 代碼:
當保存完圖片路徑之后,返回頁面圖片存在的路徑
out.println( "<script>parent.callback('"+sb.append(uuid).append(".").append(fileEnd)+"')</script>");
成功結果: