php上传,PHP-文件上传和下载「程序员培养之路第三十八天」
第一節 上傳設置
客戶端設置
form:method=post、enctype="multipart/form-data"
input:type=file
提交服務端設置
在php.ini中進行設置:
默認uploadmaxfilesize = 2M,如果你想上傳超過8M的文件,比如:20M,你在設定uploadmaxfilesize = 20M的同時,還要修改postmaxsize選項(默認為8M)。否則post數據超出限制,$_FILES將會為空(報錯)。
$_FILES數組
$_FILES超全局數組中,包含著從客戶端提交文件的全部信息:
array (size=1)'fname' => //上傳文件表單項的namearray (size=5)'name' => string 'home.html' (length=21) //上傳文件的名稱'type' => string 'text/html' (length=9) //文件類型(常見文件都可以上傳)'tmp_name' => string 'C:\wamp\tmp\php57A2.tmp' (length=23) //上傳文件的臨時文件名'error' => int 0 //上傳文件遇到的錯誤號'size' => int 28131 //上傳文件的大小
上傳步驟
var_dump($_FILES);$file=$_FILES["fname"];
獲取$_FILES文件 臨時文件
$tmp_file=$file["tmp_name"];
獲取后綴名
$ext=pathinfo($file["name"],PATHINFO_EXTENSION);//后綴名
創建新文件名
$new_file="file".rand(1,1000000).".".$ext;
保存路徑
$path="./files";
格式化路徑
$path=rtrim($path,'/')."/";
拼接上傳目錄
$new_file=$path.$new_file;
臨時文件轉換成正式文件
move_uploaded_file($tmp_file,$new_file);
PHP
第二節 下載設置
瀏覽器對于可識別的文件格式(html、txt、png、jpg等),默認是直接打開的,對于無法識別的文件,才作為附件來下載。為了可以讓可識別的文件也直接可以下載,需要進行如下設置:
1. 讀取文件
$fliename=$_GET["name"];$filetype=$_GET["type"];
2. 文件的描述信息 Content-Disposition(內容配置)指定為attachment(附件)(必須)
header("Content-Disposition:attachment;filename={$filename}");
3. 指定被下載文件的類型(非必須)
header("Content-Type:{$filetype}");
4. 指定被下載文件大小(非必須)
header("Content-Length:".filesize($filename));
5. 將內容讀入內存緩沖區
readfile($filename);
注意:在 readfile($filename) 之前,不能有任何輸出語句(錯誤信息、var_dump調試語句,echo輸出等),否則下載的文件會出錯。
PHP-文件處理系統「程序員培養之路第三十七天」
PHP-錯誤日志處理「程序員培養之路第三十六天」
PHP-日期時間操作函數「程序員培養之路第三十五天」
總結
以上是生活随笔為你收集整理的php上传,PHP-文件上传和下载「程序员培养之路第三十八天」的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 群晖新 NAS DS224+ 上架:四核
- 下一篇: php curl 批量,PHP实现的cu