absolute;top:
-9999px;left:
-9999px"';
if(window.ActiveXObject){
if(typeofuri=='boolean'){
iframeHtml+='src="'+'javascript:
false'+'"';
}
elseif(typeofuri=='string'){
iframeHtml+='src="'+uri+'"';
}
}
iframeHtml+='/>';
jQuery(iframeHtml).appendTo(document.body);
returnjQuery('#'+frameId).get(0);
},
createUploadForm:
function(id,fileElementId,data){
//创建frame
varformId='jUploadForm'+id;
varfileId='jUploadFile'+id;
varform=jQuery('');
if(data){
for(variindata){
jQuery('').appendTo(form);
}
}
varoldElement=jQuery('#'+fileElementId);
varnewElement=jQuery(oldElement).clone();
jQuery(oldElement).attr('id',fileId);
jQuery(oldElement).before(newElement);
jQuery(oldElement).appendTo(form);
//设置属性
jQuery(form).css('position','absolute');
jQuery(form).css('top','-1200px');
jQuery(form).css('left','-1200px');
jQuery(form).appendTo('body');
returnform;
},
ajaxFileUpload:
function(s){
s=jQuery.extend({},jQuery.ajaxSettings,s);
varid=newDate().getTime()
varform=jQuery.createUploadForm(id,s.fileElementId,(typeof(s.data)=='undefined'?
false:
s.data));
vario=jQuery.createUploadIframe(id,s.secureuri);
varframeId='jUploadFrame'+id;
varformId='jUploadForm'+id;
//监控请求
if(s.global&&!
jQuery.active++){
jQuery.event.trigger("ajaxStart");
}
varrequestDone=false;
//创建请求对象
varxml={}
if(s.global)
jQuery.event.trigger("ajaxSend",[xml,s]);
//等待一个响应返回
varuploadCallback=function(isTimeout){
vario=document.getElementById(frameId);
try{
if(io.contentWindow){
xml.responseText=io.contentWindow.document.body?
io.contentWindow.document.body.innerHTML:
null;
xml.responseXML=io.contentWindow.document.XMLDocument?
io.contentWindow.document.XMLDocument:
io.contentWindow.document;
}elseif(io.contentDocument){
xml.responseText=io.contentDocument.document.body?
io.contentDocument.document.body.innerHTML:
null;
xml.responseXML=io.contentDocument.document.XMLDocument?
io.contentDocument.document.XMLDocument:
io.contentDocument.document;
}
}catch(e){
jQuery.handleError(s,xml,null,e);
}
if(xml||isTimeout=="timeout"){
requestDone=true;
varstatus;
try{
status=isTimeout!
="timeout"?
"success":
"error";
//请求成功
if(status!
="error"){
//处理数据
vardata=jQuery.uploadHttpData(xml,s.dataType);
if(s.success)
s.success(data,status);
//触发全局返回
if(s.global)
jQuery.event.trigger("ajaxSuccess",[xml,s]);
}else
jQuery.handleError(s,xml,status);
}catch(e){
status="error";
jQuery.handleError(s,xml,status,e);
}
//请求完成
if(s.global)
jQuery.event.trigger("ajaxComplete",[xml,s]);
//处理全局AJAX计数器
if(s.global&&!
--jQuery.active)
jQuery.event.trigger("ajaxStop");
//处理结果
if(plete)
plete(xml,status);
jQuery(io).unbind()
setTimeout(function(){
try{
jQuery(io).remove();
jQuery(form).remove();
}catch(e){
jQuery.handleError(s,xml,null,e);
}
},100)
xml=null
}
}
//超时检查
if(s.timeout>0){
setTimeout(function(){
if(!
requestDone)uploadCallback("timeout");
},s.timeout);
}
try{
varform=jQuery('#'+formId);
jQuery(form).attr('action',s.url);
jQuery(form).attr('method','POST');
jQuery(form).attr('target',frameId);
if(form.encoding){
jQuery(form).attr('encoding','multipart/form-data');
}
else{
jQuery(form).attr('enctype','multipart/form-data');
}
jQuery(form).submit();
}catch(e){
jQuery.handleError(s,xml,null,e);
}
jQuery('#'+frameId).load(uploadCallback);
return{abort:
function(){}};
},
uploadHttpData:
function(r,type){
vardata=!
type;
data=type=="xml"||data?
r.responseXML:
r.responseText;
if(type=="script")
jQuery.globalEval(data);
if(type=="json")
eval("data="+data);
if(type=="html")
jQuery("
").html(data).evalScripts();
returndata;
}
})
★在Default.aspx中的代码如下:
<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="Default.aspx.cs"Inherits="_Default"%>
DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http:
//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
//www.w3.org/1999/xhtml">
测试ajax上传图片
functionajaxFileUpload(){
$("#loading")
.ajaxStart(function(){
$(this).show();
})
.ajaxComplete(function(){
$(this).hide();
});
$.ajaxFileUpload(
{
url:
'Handler.ashx',
secureuri:
false,
fileElementId:
'fileToUpload',
dataType:
'json',
data:
{name:
'logan',id:
'id'},
success:
function(data,status){
if(typeof(data.error)!
=='undefined'){
if(data.error!
==''){
alert(data.error);
}else{
//alert(data.msg);
$('#imgshow').show();
$('#imgshow').append("");
}
}
},
error:
function(data,status,e){
alert(e);
}
}
)
returnfalse;
}
上传
none;"alt="加载"/>
none;">