学习记录——使用用隐藏的IFrame提交表单

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>");

成功结果:

 

posted @ 2016-09-08 10:02  乞彦  阅读(2879)  评论(0编辑  收藏  举报