php实现附件上传下载,PHP实现文件上传与下载
文件上傳原理:
將客戶端的文件上傳到服務(wù)器端,再將服務(wù)器端的臨時文件移動到指定目錄即可。
客戶端配置:
1.表單頁面
2.表單的發(fā)送方式為post
3.添加enctype=”multipart/form-data”
$_FILES中保存著上傳文件的信息
name:上傳文件的名稱
type:上傳文件的MIME類型
tmp_name:上傳到服務(wù)器上的臨時文件名
size:上傳文件大小
error:上傳文件的錯誤號
move_uploaded_file(tmpname,destination):將服務(wù)器上臨時文件移動到指定目錄,并命名。
如:
move_uploaded_file(tmpname,"uploads/".filename);
還有:
copy(src,dst);
文件上傳配置:php.ini
服務(wù)器端配置:
file_uploads = on ,支持HTTP上傳
upload_tmp_dir= ,臨時文件保存的目錄
upload_max_filesize = 2M,允許上傳文件的最大值
max_file_uploads = 20,允許一次上傳的最大文件數(shù)
post_max_size = 8M,POST方式發(fā)送數(shù)據(jù)的最大值
max_execution_time = -1,設(shè)置了腳本被解析器終止之前允許的最大執(zhí)行時間,單位為秒,防止程序?qū)懙牟缓枚急M服務(wù)器資源
max_input_time = 60,腳本解析輸入數(shù)據(jù)允許的最大時間,單位是秒
max_input_nesting_level = 64,設(shè)置輸入變量的嵌套深度
max_input_vars = 1000,接受多少輸入的變量(限制分別應(yīng)用于GET,_POST,$_COOKIE超全局變量)指令的使用減輕了以哈希碰撞來進行拒絕服務(wù)攻擊的可能性。如有超過指令指定數(shù)量的變量,將會導(dǎo)致E_WARING的產(chǎn)生,更多的輸入變量將會從請求中截斷。
memory_limit = 128M,最大單線程的獨立內(nèi)存使用量。也就是一個web請求,給與線程最大的內(nèi)存使用量的定義。
注意:在客戶端限制的代碼,可以通過在瀏覽器中修改代碼,而使限制沒有用。所以限制都應(yīng)該在服務(wù)器端。
服務(wù)器端限制:
限制上傳文件大小(通過size)
限制上傳文件類型(in_array(后綴,數(shù)組),判斷文件后綴是否在指定規(guī)定類型的數(shù)組里)
檢測是否為真實圖片類型(getimagesize)
檢測是否為HTTP POST方式上傳(is_uploaded_file,返回true表示是通過PHP的post方式上傳的)
生成唯一字符串:
md5(uniqid(microtime(true),true))').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('
').text(i));
};
$numbering.fadeIn(1700);
});
});
以上就介紹了PHP實現(xiàn)文件上傳與下載,包括了文件上傳,php方面的內(nèi)容,希望對PHP教程有興趣的朋友有所幫助。
本文原創(chuàng)發(fā)布php中文網(wǎng),轉(zhuǎn)載請注明出處,感謝您的尊重!
總結(jié)
以上是生活随笔為你收集整理的php实现附件上传下载,PHP实现文件上传与下载的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 验证微信token_php之微信
- 下一篇: 动态规划算法php,php算法学习之动态