標籤:input 迴圈 表單 http 代碼 初始 default move 斷點
上傳方式,PHP預設 和 FTP 上傳
1、修改PHP 配置:
php.ini 修改以下配置項為適合的資料
php中 php.ini 檔案修改
file_uploads = On //允許檔案上傳
upload_tmp_dir = "E:/fileuploadtmp" //暫存空間
upload_max_filesize = 100M //上傳檔案最大的容量
post_max_size = 120M //上傳資料的最大容量
max_execution_time = 600 //最長執行時間(秒)
max_input_time = 600 //上傳持續的最長時間(秒)
memory_limit = 256M //記憶體大小
max_file_uploads = 20 //支援同事上傳的檔案數量
default_socket_timeout = 300
#提示 memory_limit > post_max_size > upload_max_filesize
如果是wamp 安裝的則需要修改apache\bin目錄下的php.ini 檔案,預設是這個設定檔配置生效
(注意若是用Integration Environment安裝的,則需要注意Integration Environment實際生效的設定檔是在哪兒)
修改完後重啟apache
也可以利用php 函數動態設定
ini_get()擷取php.ini設定值
ini_set()設定php.ini
前台:
若檔案太大需要進行切割,斷點續傳
使用XHR2實現對檔案的的切割上傳
具體代碼如下::::
var fileobj = document.getElementByTagName(‘input‘)[i].files[0];//擷取檔案上傳對象的檔案資源
const SLICESIZE = 10 * 1024 * 1024;//每次切割的大小,這裡是10MB//此處可做修改
var start = 0; //初始化截取開始位置
var end = 0; //初始化截取終止位置
totalsize = fileobj.size; //擷取檔案的總的大小
while(start < totalsize){ //利用while迴圈將檔案進行截取提交
start = end ; //
end = start + SLICESIZE; //
var xhr = new XMLHttpRequest(); //建立ajax對象
var fd = new FormData(); //建立表單對象
var part = fileobj.slice(start,end);//對檔案進行切割,兩個參數
fd.append(‘name‘,part);//把切割檔案打包進表單對象中以便發送,其中name的值就是伺服器$_FILES[‘name‘]接受處的變數名
xhr.open(‘POST‘,‘test.php‘,false);//之所以關閉非同步,是為了防止檔案塊送達伺服器的順序出錯
xhr.send(fd);//把打包的資料發送
}
後台:
move_uploaded_file() 移動儲存檔案
PHP + webuploader 視頻上傳