上傳方式,PHP默認方式 和 FTP 上傳php
一、修改PHP 配置:ajax
php.ini 修改如下配置項爲適合的數據apache
php中 php.ini 文件修改服務器
file_uploads = On //容許文件上傳app
upload_tmp_dir = "E:/fileuploadtmp" //暫存空間異步
upload_max_filesize = 100M //上傳文件最大的容量socket
post_max_size = 120M //上傳數據的最大容量函數
max_execution_time = 600 //最長執行時間(秒)post
max_input_time = 600 //上傳持續的最長時間(秒)spa
memory_limit = 256M //內存大小
max_file_uploads = 20 //支持同事上傳的文件數量
default_socket_timeout = 300
#提示 memory_limit > post_max_size > upload_max_filesize
若是是wamp 安裝的則須要修改apache\bin目錄下的php.ini 文件,默認是這個配置文件配置生效
(注意如果用集成環境安裝的,則須要注意集成環境實際生效的配置文件是在哪兒)
修改完後重啓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() 移動保存文件