本文所讲是在asp.net无刷新上传文件,xhttpRequest并不能实现文件上传,所以涉及到文件的上传,我们还得回到frame上,尤其是iframe。下面学步园小编来讲解下asp.net无刷新上传文件需要哪些东西?asp.net无刷新上传文件基本原理是什么?
asp.net无刷新上传文件
1,你掌握基本的Javascript技能。
2,一个隐藏的form和iframe,这里我分别命名为uploadForm和uploadResponse.
3,一个负责接收文件的页面,名字叫做UploadImage.aspx.
4,一个负责显示文件的页面,名字叫做File.aspx.
asp.net无刷新上传文件
通过复制当前form(form1)中的inputtype=file的html元素到另一个专用于文件上传的form(uploadForm)中,而切uploadForm的target指向到一个隐藏的iframe(uploadResponse)框架的name.这样,当执行uploadForm的submit()操作时,就会通过uploadResponse将uploadForm的内容post到UploadImage.aspx页面去执行,由于iframe元素uploadResponse及form元素uploadForm元素都是位于一个隐藏的div元素中,所以访问者自始至终都不会见到多余的东西。
实例:
Default.aspx页面。
functionuploadImage(){
varfile=document.getElementById(“imageFile”);
varuploadFormElement=document.getElementById(“uploadForm”);
//显示进度条
document.getElementById(“processDiv”)。style.display=“block”;//theprogressdiv
//复制图片数据
uploadFormElement.removeChild(uploadFormElement.imageFile);
uploadFormElement.appendChild(file);
document.getElementById(“uploadImageDiv”)。innerHTML='
//提交图片数据
uploadFormElement.submit();
}
functionuploadImageResponse(response){
document.getElementById(“processDiv”)。style.display=“none”;//hideprogresssdiv
varerrLabel=document.getElementById(“uploadMessage”);
errLabel.innerHTML=“”;
window.eval(“vark=”+response);
if(k.status==1)
errLabel.innerHTML=k.message;
elseif(k.status==2)
errLabel.innerHTML=k.message;
else
eval(“tinyMCE.activeEditor.dom.add(tinyMCE.activeEditor.getBody(),'img',{src:‘”+k.message+“',style:'border:0px;'},null);”);
}
functionuploadButton_onclick(){
}
上传图片:
图片上传中