摘要:監(jiān)聽控件值的變化拼接參數(shù)文件參數(shù)方式,為服務(wù)器請(qǐng)求地址,該參數(shù)規(guī)定請(qǐng)求是否異步處理。
var form = document.getElementById("chooseFile"); form.addEventListener("change", function(ev) {//監(jiān)聽file控件值的變化 var oData = new FormData(); var file=this.files[0]; //拼接參數(shù) formData.append("file", file); // 文件 formData.append("params", "參數(shù)"); formData.append("array",JSON.stringify([1,2,3])); var xhr = new XMLHttpRequest(); xhr.open("post",url,true); //post方式,url為服務(wù)器請(qǐng)求地址,true 該參數(shù)規(guī)定請(qǐng)求是否異步處理。 xhr.upload.onloadstart = function(){//上傳開始 //... }; xhr.upload.onprogress = function(evt){//顯示上傳進(jìn)度條 var loaded = evt.loaded;//已經(jīng)上傳大小情況 var tot = evt.total;//附件總大小 var per = Math.floor(100 * loaded / tot); //已經(jīng)上傳的百分比 $("#uploadprogress").removeClass("hide").css("width",per+"%"); }; xhr.onload = function (evt) {//上傳完成 //... }; xhr.onerror = function () { alert("上傳失敗"); }; xhr.send(oData); //開始上傳,發(fā)送form數(shù)據(jù) }, false);
拖拽上傳
$(".divFile7")[0].ondrop = function (event) { event.preventDefault();//不要執(zhí)行與事件關(guān)聯(lián)的默認(rèn)動(dòng)作 var files = event.dataTransfer.files;//獲取拖上來的文件 //以下代碼不變 var formData = new FormData(); //參照上面代碼...... };
使用jqery上傳文件的注意事項(xiàng)
需設(shè)置processData參數(shù)為false
$.ajax({ url: "/Home/SaveFile2", type: "POST", data: formData, processData: false, // 告訴jQuery不要去處理發(fā)送的數(shù)據(jù) contentType: false, // 告訴jQuery不要去設(shè)置Content-Type請(qǐng)求頭 success: function (responseText) { alert(responseText); } });
監(jiān)聽黏貼操作將圖片轉(zhuǎn)換為base64
document.getElementById("messageText").addEventListener("paste",function(e){ var data=e.clipboardData||window.clipboardData; blob=data.items[0].getAsFile();//獲取圖片內(nèi)容 var isImg=(blob&&1)||-1;//判斷是不是圖片,最好通過文件類型判斷 var reader=new FileReader(); if(isImg>=0){ reader.readAsDataURL(blob);//將文件讀取為 DataURL } reader.onload=function(event){//文件讀取完成時(shí)觸發(fā) //event.target.result就是我們要的base64編碼 }; });
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/109607.html
摘要:還特別介紹一種用使用對(duì)象上傳文件的方法。設(shè)置為上傳文件不需要緩存。用上傳文件因?yàn)椴皇撬袨g覽器都支持的,所以有時(shí)候需要用來實(shí)現(xiàn)文件上傳的功能。 用AJAX上傳文件,一般都是用FormData對(duì)象。 FormData對(duì)象,是可以使用一系列的健值對(duì)來模擬一個(gè)完整的表單,然后使用XMLHttpRequest發(fā)送這個(gè)表單。 FormData的使用 創(chuàng)建一個(gè)空的FormData對(duì)象,然后再用...
摘要:如果是傳入三個(gè)參數(shù)的方式,那么該值將是一個(gè)布爾值,文件,或者一個(gè),如果不是,將被轉(zhuǎn)成一個(gè)字符串可選傳給服務(wù)器的文件名稱一個(gè)。 系列文章 關(guān)于前端上傳文件全面基礎(chǔ)掃盲貼(零)關(guān)于前端上傳文件全面基礎(chǔ)掃盲貼(一) ----- XMLHttpRequest關(guān)于前端上傳文件全面基礎(chǔ)掃盲貼(二) ----- File關(guān)于前端上傳文件全面基礎(chǔ)掃盲貼(三) ----- FormData關(guān)于前端上傳文...
摘要:對(duì)象包含表單的文本域信息,或?qū)ο蟀瑢?duì)象表單上傳的文件信息。是文件的信息前端傳遞的文件類型在中獲取將具有文本域數(shù)據(jù),如果存在的話。 node.js實(shí)現(xiàn)formdata上傳文件 1.關(guān)于formdata XMLHttpRequest Level 2 添加了一個(gè)新的接口——FormData。利用 FormData 對(duì)象,我們可以通過 JavaScript 用一些鍵值對(duì)來模擬一系列表單控件,...
摘要:當(dāng)用戶完成選擇文件動(dòng)作時(shí),提交子頁(yè)面中的。從此我們上傳文件就歡欣鼓舞的來找了。因?yàn)榈暮诵氖菍?duì)象,異步的實(shí)現(xiàn)是通過一個(gè)對(duì)象,一般簡(jiǎn)稱該對(duì)象對(duì)。這些回答基于自己理解,如有不妥,希望路過的大神輕噴,指正。 背景 平時(shí)工作中經(jīng)常會(huì)遇到需要上傳文件的情況,如果你用ant design 或者element ,它們都提供了上傳的組件。 我們分別來看一下element 和 antd 手動(dòng)上傳怎么處理:...
摘要:簡(jiǎn)單的上傳例子先在里面準(zhǔn)便好標(biāo)簽添加上傳文件上傳文件解讀步驟的對(duì)象獲取,對(duì)象生成使用的事件來獲取,文件的內(nèi)容使用的方法來添加一個(gè)新值到里面來使用的的方法來上傳文件原理說明對(duì)象其實(shí)不止是可以用來上傳文件,如同其名,可以模擬一系列表單控件的 showImg(https://segmentfault.com/img/bVbbKYh?w=1366&h=660); FormData 簡(jiǎn)單的上傳例...
閱讀 2536·2023-04-25 19:47
閱讀 3383·2019-08-29 17:18
閱讀 855·2019-08-29 15:26
閱讀 3360·2019-08-29 14:17
閱讀 1115·2019-08-26 13:49
閱讀 3338·2019-08-26 13:22
閱讀 3023·2019-08-26 10:44
閱讀 2693·2019-08-23 16:51