JS 可斷點(diǎn)續(xù)傳文件上傳實(shí)現(xiàn)教程

發(fā)布時(shí)間:2024-03-19
剛開始學(xué)習(xí)前端開發(fā)就碰到文件上傳問題,還要求可斷點(diǎn)續(xù)傳。查了很多資料,發(fā)現(xiàn)h5的file api剛好可以滿足我們的需求,也遇到了一些問題,于是記錄下來為有同樣需求的朋友提供一些幫助。
一、首先,為了引入文件對(duì)象,需要在h5頁(yè)面上放置一個(gè)file類型的輸入標(biāo)簽。
<input type="file" onchange="fileinfo()">
當(dāng)選擇文件之后顯示文件相關(guān)信息:
function fileinfo() {
let fileobj = document.getelementbyid('file').files[0];
console.log(fileobj);
}
我們獲取到的對(duì)象本身是一個(gè)數(shù)組,這里只選擇了一個(gè)文件,需要選擇多個(gè)文件可在input標(biāo)簽添加multiple屬性?,F(xiàn)在我們打開瀏覽器控制臺(tái)可以看到輸出了文件的最后修改時(shí)間、文件大小和文件名等信息:
// 上傳一塊完成后修改進(jìn)度條信息,然后上傳下一塊
document.getelementbyid('progress').value = end;
upload(end);
然后打開瀏覽器,在上傳過程中故意關(guān)閉瀏覽器下次再選擇同一文件時(shí)即可從斷點(diǎn)位置開始續(xù)傳。
四、雖然已經(jīng)實(shí)現(xiàn)了可斷點(diǎn)續(xù)傳的文件上傳功能,但是界面還需要美化一下,這里引用bootstrap框架,需要jquery,順便用jquery的ajax代替原生js的ajax,需要注意的是$.ajax的processdata和contenttype屬性都要設(shè)置成false:
// post表單數(shù)據(jù)
$.ajax({
url: 'upload.php',
type: 'post',
data: fd,
processdata: false,
contenttype: false,
success: function() {
upload(end);
}
});
最后美化完成的效果圖如下:
推薦教程:《js教程》
上一個(gè):三星s7edge怎么換鎖屏,三星手機(jī)如何更換屏幕鎖
下一個(gè):wavelength references可調(diào)諧激光器clarityplus

人身保護(hù)令需要什么材料
夫妻離婚小孩撫養(yǎng)費(fèi)怎么判
離婚后對(duì)方拒不履行精神損害賠償怎么辦
k5評(píng)測(cè)(k5zol)
花卉無(wú)土栽培技術(shù)的優(yōu)點(diǎn)
怎么使vivo手機(jī)截屏快,vivo按哪幾個(gè)健可以快速截屏
六堡茶的制法
冬凌草的化學(xué)成分
科文邀您如何選購(gòu)高低溫濕熱試驗(yàn)箱
如何正確認(rèn)定爆炸罪
十八禁 网站在线观看免费视频_2020av天堂网_一 级 黄 色 片免费网站_绝顶高潮合集Videos