着急啊,怎么使用ajaxpro.net上传文件呀,多谢如题。
原来是。net的控件,现在要用无刷新的这个东西,大家用过吗,
给点意见也好啊。

解决方案 »

  1.   

    我在接触
    答案是你不要妄想用ajax的方式将文件上传到服务器
    而是采用iframe和隐藏的form相结合的方式
    具体的方法比较复杂,要求你对javascript比较熟悉
    通过Dom方式将<input type="file">的元素移动到隐藏的form中
    在form设置<form target="隐藏的iframe名称">
    然后提交这个隐藏的form,就把数据提交到服务器上了,同时主页面不刷新
    厄~
    具体的可以研究Google Base的发布信息的googlebase.js脚本和页面。
      

  2.   

    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>
      

  3.   

    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
      

  4.   

    分析完的代码仍在家里了,如果你自己能猜透Googlebase.js这个脚本,才能说明你对javascript掌握通透了
    否则建议你看<<Javascript权威指南〉〉和JavaScript应用程序经典实例