着急啊,怎么使用ajaxpro.net上传文件呀,多谢 着急啊,怎么使用ajaxpro.net上传文件呀,多谢如题。原来是。net的控件,现在要用无刷新的这个东西,大家用过吗,给点意见也好啊。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我在接触答案是你不要妄想用ajax的方式将文件上传到服务器而是采用iframe和隐藏的form相结合的方式具体的方法比较复杂,要求你对javascript比较熟悉通过Dom方式将<input type="file">的元素移动到隐藏的form中在form设置<form target="隐藏的iframe名称">然后提交这个隐藏的form,就把数据提交到服务器上了,同时主页面不刷新厄~具体的可以研究Google Base的发布信息的googlebase.js脚本和页面。 Google base 发布信息中的一段html代码<div style="display: none"> <iframe name="uploadResponse"></iframe> <form action="addofferimage" target="uploadResponse" method="post" name="uploadForm" enctype="multipart/form-data"> <input type="text" name="submissionType"> <input type="text" name="requestedUrl"> <input type="file" name="contentFile" value=""> <input type="text" name="fileName" value=""> <input type="text" name="index" value=""> </form> </div> var gb_=document.offerForm; var gb_a=gb_h("contentFile"); _uploadFiles.push(gb_Ka(gb__(gb_.submissionType),gb_.requestedUrl.value,gb_a)); var gb_b=_uploadFiles.length-1; gb_a.id="contentFile_"+gb_b; if(gb_O) { var gb_c=_uploadFiles[_uploadFiles.length-1]; var gb_f=document.createElement("input"); gb_U(gb_f); gb_.requestedUrl.parentNode.insertBefore(gb_f,gb_.requestedUrl); gb_f.name="submissionType_"+gb_b; gb_f.id="submissionType_"+gb_b; gb_f.value=gb_c.submissionType; var gb_e=document.createElement("input"); gb_U(gb_e); gb_.requestedUrl.parentNode.insertBefore(gb_e,gb_.requestedUrl); gb_e.name="fileName_"+gb_b; gb_e.value=gb_c.fileName; if(gb_c.submissionType=="upload") { gb_a.name="contentFile_"+gb_b; gb_a.id="contentFile_"+gb_b; var gb_i=document.createElement("input"); gb_i.name="contentFile"; gb_i.id="contentFile"; gb_i.size=30; gb_i.type="file"; gb_a.parentNode.insertBefore(gb_i,gb_a); if(gb_c.file.value==null||gb_c.file.value=="") { gb_2(gb_c); gb_f.disabled=true; gb_a.disabled=true } gb_U(gb_a) } else { var gb_l=document.createElement("input"); gb_.requestedUrl.parentNode.insertBefore(gb_l,gb_.requestedUrl); gb_l.name="requestedUrl_"+gb_b; gb_l.value=gb_.requestedUrl.value; if(gb_l.value==null||gb_l.value=="") { gb_2(gb_c); gb_f.disabled=true; gb_l.disabled=true } gb_U(gb_l); gb_.requestedUrl.value="" } gb_J(document) } else { var gb_o=gb_h("contentUploadDiv"); gb_o.innerHTML='<input size="30" type="file" name="contentFile" id="contentFile" style="" onkeyup="_setFileNameHiddenInput(this); " onchange="_setFileNameHiddenInput(this); " onclick="if(this.disabled) return false;">'; gb_.requestedUrl.value=""; gb_ja(); for(var gb_d=0;gb_d<_uploadFiles.length;gb_d++) { if(_uploadFiles[gb_d].uploadStatus=="uploading"){ gb_J(document); return } } gb_Fa(document,_uploadFiles.length-1); } return false 分析完的代码仍在家里了,如果你自己能猜透Googlebase.js这个脚本,才能说明你对javascript掌握通透了否则建议你看<<Javascript权威指南〉〉和JavaScript应用程序经典实例 Asp.net 怎么实现这个功能? N层开发连接对象SQLConnection的实例化问题 asp.net中如何关闭window.showModalDialog弹出的窗口 ASP 页面跳转时传递参数应该怎么写 如何实现将附件中的内容用二进制流存入数据库 请问在使用SqlDataReader查询数据时能不能知道返回几行数据. IIS发布asp.net网站浏览页面需要输入用户名密码,怎么解决 这样来改变Datagrid当中字体的颜色??? 如何格式化日期字段的显示格式?? 在用户控件中如何得到调用页的变量和控件 一个关于时间的问题,急用!在线等!~~
答案是你不要妄想用ajax的方式将文件上传到服务器
而是采用iframe和隐藏的form相结合的方式
具体的方法比较复杂,要求你对javascript比较熟悉
通过Dom方式将<input type="file">的元素移动到隐藏的form中
在form设置<form target="隐藏的iframe名称">
然后提交这个隐藏的form,就把数据提交到服务器上了,同时主页面不刷新
厄~
具体的可以研究Google Base的发布信息的googlebase.js脚本和页面。
<div style="display: none">
<iframe name="uploadResponse"></iframe>
<form action="addofferimage" target="uploadResponse" method="post" name="uploadForm"
enctype="multipart/form-data">
<input type="text" name="submissionType">
<input type="text" name="requestedUrl">
<input type="file" name="contentFile" value="">
<input type="text" name="fileName" value="">
<input type="text" name="index" value="">
</form>
</div>
var gb_a=gb_h("contentFile");
_uploadFiles.push(gb_Ka(gb__(gb_.submissionType),gb_.requestedUrl.value,gb_a));
var gb_b=_uploadFiles.length-1;
gb_a.id="contentFile_"+gb_b;
if(gb_O)
{
var gb_c=_uploadFiles[_uploadFiles.length-1];
var gb_f=document.createElement("input");
gb_U(gb_f);
gb_.requestedUrl.parentNode.insertBefore(gb_f,gb_.requestedUrl);
gb_f.name="submissionType_"+gb_b;
gb_f.id="submissionType_"+gb_b;
gb_f.value=gb_c.submissionType;
var gb_e=document.createElement("input");
gb_U(gb_e);
gb_.requestedUrl.parentNode.insertBefore(gb_e,gb_.requestedUrl);
gb_e.name="fileName_"+gb_b;
gb_e.value=gb_c.fileName;
if(gb_c.submissionType=="upload")
{
gb_a.name="contentFile_"+gb_b;
gb_a.id="contentFile_"+gb_b;
var gb_i=document.createElement("input");
gb_i.name="contentFile";
gb_i.id="contentFile";
gb_i.size=30;
gb_i.type="file";
gb_a.parentNode.insertBefore(gb_i,gb_a);
if(gb_c.file.value==null||gb_c.file.value=="")
{
gb_2(gb_c);
gb_f.disabled=true;
gb_a.disabled=true
}
gb_U(gb_a)
}
else
{
var gb_l=document.createElement("input");
gb_.requestedUrl.parentNode.insertBefore(gb_l,gb_.requestedUrl);
gb_l.name="requestedUrl_"+gb_b;
gb_l.value=gb_.requestedUrl.value;
if(gb_l.value==null||gb_l.value=="")
{
gb_2(gb_c);
gb_f.disabled=true;
gb_l.disabled=true
}
gb_U(gb_l);
gb_.requestedUrl.value=""
}
gb_J(document)
}
else
{
var gb_o=gb_h("contentUploadDiv");
gb_o.innerHTML='<input size="30" type="file" name="contentFile" id="contentFile" style="" onkeyup="_setFileNameHiddenInput(this); " onchange="_setFileNameHiddenInput(this); " onclick="if(this.disabled) return false;">';
gb_.requestedUrl.value="";
gb_ja();
for(var gb_d=0;gb_d<_uploadFiles.length;gb_d++)
{
if(_uploadFiles[gb_d].uploadStatus=="uploading"){
gb_J(document);
return
}
}
gb_Fa(document,_uploadFiles.length-1);
}
return false
否则建议你看<<Javascript权威指南〉〉和JavaScript应用程序经典实例