重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
這篇文章給大家介紹怎么在html中使用ajax上傳大文件,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
創(chuàng)新互聯(lián)建站主營(yíng)臨川網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,手機(jī)APP定制開(kāi)發(fā),臨川h5小程序開(kāi)發(fā)搭建,臨川網(wǎng)站營(yíng)銷(xiāo)推廣歡迎臨川等地區(qū)企業(yè)咨詢(xún)
1、簡(jiǎn)易性:超級(jí)文本標(biāo)記語(yǔ)言版本升級(jí)采用超集方式,從而更加靈活方便,適合初學(xué)前端開(kāi)發(fā)者使用。 2、可擴(kuò)展性:超級(jí)文本標(biāo)記語(yǔ)言的廣泛應(yīng)用帶來(lái)了加強(qiáng)功能,增加標(biāo)識(shí)符等要求,超級(jí)文本標(biāo)記語(yǔ)言采取子類(lèi)元素的方式,為系統(tǒng)擴(kuò)展帶來(lái)保證。 3、平臺(tái)無(wú)關(guān)性:超級(jí)文本標(biāo)記語(yǔ)言能夠在廣泛的平臺(tái)上使用,這也是萬(wàn)維網(wǎng)盛行的一個(gè)原因。 4、通用性:HTML是網(wǎng)絡(luò)的通用語(yǔ)言,它允許網(wǎng)頁(yè)制作人建立文本與圖片相結(jié)合的復(fù)雜頁(yè)面,這些頁(yè)面可以被網(wǎng)上任何其他人瀏覽到,無(wú)論使用的是什么類(lèi)型的電腦或?yàn)g覽器。
原理:利用HTML5的新特性,將文件內(nèi)容切割成分段的二進(jìn)制信息,然后每次向服務(wù)器上傳一段,而服務(wù)器,只需要把我們每次上傳的二進(jìn)制信息整合存儲(chǔ)到一個(gè)文件中,那么最后這個(gè)文件就是所上傳的文件。
由于php.ini默認(rèn)的上傳大小為2M,如果每批都上傳2M,我測(cè)試的時(shí)候時(shí)間比較長(zhǎng),這里我將其限制大小該為20M,最大post數(shù)據(jù)為28M,便于測(cè)試。如果實(shí)際開(kāi)發(fā)中不能修改其參數(shù),則每批上傳的數(shù)據(jù)不能超過(guò)最大限制。
post_max_size = 28M upload_max_filesize = 20M
我的是在nginx里面上傳所以還需要修改Nginx配置文件/etc/nginx/nginx.con
//在http{} 里面加即可 client_max_body_size 50m #客戶(hù)端最大上傳大小 50M
JavaScript中的File對(duì)象
在之前的文章中我們已經(jīng)使用到了這個(gè)Api,F(xiàn)ile對(duì)象中保存了文件的大小、名稱(chēng)、類(lèi)型等信息
JavaScript中的Blob對(duì)象
Blob對(duì)象是二進(jìn)制對(duì)象,也是File對(duì)象的父類(lèi),Blob對(duì)象中有一個(gè)很重要的方法:slice() 方法,利用這個(gè)方法我們可以把文件內(nèi)容切割成二進(jìn)制信息。slice() 方法接受三個(gè)參數(shù),起始偏移量,結(jié)束偏移量,還有可選的 mime 類(lèi)型。如果 mime 類(lèi)型,沒(méi)有設(shè)置,那么新的 Blob 對(duì)象的 mime 類(lèi)型和父級(jí)一樣。
上傳頁(yè)面index.php:
大文件切割上傳 大文件切割上傳
接收數(shù)據(jù)頁(yè)面upload.php:
測(cè)試之前,先創(chuàng)建uploads文件夾
如果是linux系統(tǒng)的話(huà) 切記給uploads給權(quán)限
sudo chmod -R 777 uoloads/ //賦予uploads文件夾 777 權(quán)限 -R 遞歸子文件
關(guān)于怎么在html中使用ajax上傳大文件就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。