導航:首頁 > 文件類型 > ajax上傳excel文件

ajax上傳excel文件

發布時間:2023-08-04 02:07:08

『壹』 怎麼用ajax實現上傳文件的功能

HTTP File Server

http-file-server是用 python 實現的 HTTP 文件伺服器,支持上傳和下載文件。

運行

$ python file-server.py files 8001

其中第一個參數files是存放文件的路徑,第二個參數8001是 HTTP 伺服器埠。

介面

1. 讀取文件

GET /pathtofile/filename

2. 讀取文件夾下所有文件(已經忽略隱藏文件)

GET /path

返迴文件列表為jsON數組,文件名末尾帶有/的表示是文件夾。filename為文件名,mtime為修改時間。

[{"filename":"f1.txt","mtime":1001},{"filename":"p3/","mtime":1002}]

3. 上傳文件

採用POST方式上傳文件,URL參數中傳參數name表示上傳的文件名,POST內容為文件內容。

POST /upload?name=filename

ajax示例:

// file is a FileReader object
var data = file.readAsArrayBuffer();
var xhr = new XMLHttpRequest();
var url = "http://localhost:8001/upload?name=xxx.md";
xhr.open("post", url, true);
xhr.setRequestHeader("Accept", "application/json, text/javascript, */*; q=0.01");
xhr.onreadystatechange = function() {
if (xhr.readyState==4 && xhr.status==200)
{
console.log(xhr.responseText);
}
}
xhr.send(data);

文件名 filename 可以包含相對路徑。比如:upload?name=md/xxx.md。則上傳至md目錄下。

『貳』 Ajax 上傳文件 取不到返回值

$.ajaxUploadFile對返回的json值要求較嚴格,你看看你返回的值是不是如:{"userFileName":"aa.xls"}

『叄』 extjs ajax 可以上傳文件嗎

文件上傳的Ajax,首先Ajax並不支持流的傳輸,只是在裡面套了個iframe。

//ajax上傳
Ext.get('btn').on('click',function(){
Ext.Ajax.request({
url:'Upload.php',
isUpload:true,
form:'upform',
success:function(){
Ext.Msg.alert('upfile','文件上傳成功!');
}
});
});
<formid="upform">
請選擇文件:<inputtype="file"name="imgFile"/>
<inputtype="button"id="btn"value="上傳"/>
</form>
<?php
if(!isset($_FILES['imgFile'])){
echojson_encode(array("success"=>false,'msg'=>"NotgetImgfile"));
return;
}
$upfile=$_FILES['imgFile'];
$name=$upfile["name"];//上傳文件的文件名
$type=$upfile["type"];//上傳文件的類型
$size=$upfile["size"];//上傳文件的大小
$tmp_name=$upfile["tmp_name"];//上傳文件的臨時存放路徑
$error_cod=$upfile["error"];
if($error_cod>0){
echojson_encode(array("success"=>false,'msg'=>$error_cod));
}
$photo_tmp_file_name=//這里設置存放路徑
move_uploaded_file($tmp_name,$photo_tmp_file_name);//存儲文件
?>

『肆』 Ajax實現excel導出

會的。當你發出請求抄本質就是建立了和伺服器的socket通信。
你把請求發出去,action還沒有返回數據,你又請求了另外的頁面。這個會將之前的連接關閉,那麼action無法返回數據到頁面。

如果你想確定發送數據出去,action返回,前台選擇保存或者取消。
那麼最好在點擊了下載文件功能後,將網頁設置遮罩層,提示文件正在請求中。這樣用戶就無法點擊其他操作。當action返回數據後,再將網頁遮罩層取消即可!

『伍』 ajax如何 實現 文件上傳



程序說明

使用說明

實例化時,第一個必要參數是file控制項對象:

newQuickUpload(file);


第二個可選參數用來設置系統的默認屬性,包括
屬性: 默認值//說明
parameter:{},//參數對象
action:"",//設置action
timeout:0,//設置超時(秒為單位)
onReady:function(){},//上傳准備時執行
onFinish:function(){},//上傳完成時執行
onStop:function(){},//上傳停止時執行
onTimeout:function(){}//上傳超時時執行

還提供了以下方法:
upload:執行上傳操作;
stop:停止上傳操作;
dispose:銷毀程序。

varQuickUpload=function(file,options){

this.file=$$(file);

this._sending=false;//是否正在上傳
this._timer=null;//定時器
this._iframe=null;//iframe對象
this._form=null;//form對象
this._inputs={};//input對象
this._fFINISH=null;//完成執行函數

$$.extend(this,this._setOptions(options));
};
QuickUpload._counter=1;
QuickUpload.prototype={
//設置默認屬性
_setOptions:function(options){
this.options={//默認值
action:"",//設置action
timeout:0,//設置超時(秒為單位)
parameter:{},//參數對象
onReady:function(){},//上傳准備時執行
onFinish:function(){},//上傳完成時執行
onStop:function(){},//上傳停止時執行
onTimeout:function(){}//上傳超時時執行
};
return$$.extend(this.options,options||{});
},
//上傳文件
upload:function(){
//停止上一次上傳
this.stop();
//沒有文件返回
if(!this.file||!this.file.value)return;
//可能在onReady中修改相關屬性所以放前面
this.onReady();
//設置iframe,form和表單控制項
this._setIframe();
this._setForm();
this._setInput();
//設置超時
if(this.timeout>0){
this._timer=setTimeout($$F.bind(this._timeout,this),this.timeout*1000);
}
//開始上傳
this._form.submit();
this._sending=true;
},
//設置iframe
_setIframe:function(){
if(!this._iframe){
//創建iframe
variframename="QUICKUPLOAD_"+QuickUpload._counter++,
iframe=document.createElement($$B.ie?"<iframename=""+iframename+"">":"iframe");
iframe.name=iframename;
iframe.style.display="none";
//記錄完成程序方便移除
varfinish=this._fFINISH=$$F.bind(this._finish,this);
//iframe載入完後執行完成程序
if($$B.ie){
iframe.attachEvent("onload",finish);
}else{
iframe.onload=$$B.opera?function(){this.onload=finish;}:finish;
}
//插入body
varbody=document.body;body.insertBefore(iframe,body.childNodes[0]);

this._iframe=iframe;
}
},
//設置form
_setForm:function(){
if(!this._form){
varform=document.createElement('form'),file=this.file;
//設置屬性
$$.extend(form,{
target:this._iframe.name,method:"post",encoding:"multipart/form-data"
});
//設置樣式
$$D.setStyle(form,{
padding:0,margin:0,border:0,
backgroundColor:"transparent",display:"inline"
});
//提交前去掉form
file.form&&$$E.addEvent(file.form,"submit",$$F.bind(this.dispose,this));
//插入form
file.parentNode.insertBefore(form,file).appendChild(file);

this._form=form;
}
//action可能會修改
this._form.action=this.action;
},
//設置input
_setInput:function(){
varform=this._form,oldInputs=this._inputs,newInputs={},name;
//設置input
for(nameinthis.parameter){
varinput=form[name];
if(!input){
//如果沒有對應input新建一個
input=document.createElement("input");
input.name=name;input.type="hidden";
form.appendChild(input);
}
input.value=this.parameter[name];
//記錄當前input
newInputs[name]=input;
//刪除已有記錄
deleteoldInputs[name];
}
//移除無用input
for(nameinoldInputs){form.removeChild(oldInputs[name]);}
//保存當前input
this._inputs=newInputs;
},
//停止上傳
stop:function(){
if(this._sending){
this._sending=false;
clearTimeout(this._timer);
//重置iframe
if($$B.opera){//opera通過設置src會有問題
this._removeIframe();
}else{
this._iframe.src="";
}
this.onStop();
}
},
//銷毀程序
dispose:function(){
this._sending=false;
clearTimeout(this._timer);
//清除iframe
if($$B.firefox){
setTimeout($$F.bind(this._removeIframe,this),0);
}else{
this._removeIframe();
}
//清除form
this._removeForm();
//清除dom關聯
this._inputs=this._fFINISH=this.file=null;
},
//清除iframe
_removeIframe:function(){
if(this._iframe){
variframe=this._iframe;
$$B.ie?iframe.detachEvent("onload",this._fFINISH):(iframe.onload=null);
document.body.removeChild(iframe);this._iframe=null;
}
},
//清除form
_removeForm:function(){
if(this._form){
varform=this._form,parent=form.parentNode;
if(parent){
parent.insertBefore(this.file,form);parent.removeChild(form);
}
this._form=this._inputs=null;
}
},
//超時函數
_timeout:function(){
if(this._sending){this._sending=false;this.stop();this.onTimeout();}
},
//完成函數
_finish:function(){
if(this._sending){this._sending=false;this.onFinish(this._iframe);}
}
}

『陸』 ajax怎樣提交form表單與實現文件上傳

Ajax 提交form方式可以來將form表單序列化源 然後將數據通過data提交至後台,例如:

閱讀全文

與ajax上傳excel文件相關的資料

熱點內容
蘋果app在桌面消失怎麼找回來 瀏覽:817
smi文件手機怎麼用 瀏覽:222
為什麼膜拜單車app閃退 瀏覽:994
十堰編程在哪裡學 瀏覽:383
論文所需的數據要從哪裡找 瀏覽:461
可以添加直播源的網路電視軟體 瀏覽:57
文件夾pdf文件 瀏覽:562
文件太大不能播放 瀏覽:959
小米微信信息不顯示內容 瀏覽:966
備忘錄app源代碼 瀏覽:694
有哪些類似於中國的網路 瀏覽:784
如何設置蘋果5手機鎖屏密碼忘了怎麼辦 瀏覽:656
視頻下載目錄文件管理怎麼找 瀏覽:405
區域網內共享文件夾 瀏覽:389
java介面能實現介面嗎 瀏覽:460
怎麼把文件拖拽到ps里 瀏覽:245
繪畫編程是學的什麼 瀏覽:919
小蟻微單m1升級版 瀏覽:646
有什麼app會被人收購 瀏覽:709
經濟開發區數據標定員考試考什麼 瀏覽:145

友情鏈接