php实现附件上传下载,PHP实现文件上传与下载
文件上傳原理:
將客戶端的文件上傳到服務器端,再將服務器端的臨時文件移動到指定目錄即可。
客戶端配置:
1.表單頁面
2.表單的發送方式為post
3.添加enctype=”multipart/form-data”
$_FILES中保存著上傳文件的信息
name:上傳文件的名稱
type:上傳文件的MIME類型
tmp_name:上傳到服務器上的臨時文件名
size:上傳文件大小
error:上傳文件的錯誤號
move_uploaded_file(tmpname,destination):將服務器上臨時文件移動到指定目錄,并命名。
如:
move_uploaded_file(tmpname,"uploads/".filename);
還有:
copy(src,dst);
文件上傳配置:php.ini
服務器端配置:
file_uploads = on ,支持HTTP上傳
upload_tmp_dir= ,臨時文件保存的目錄
upload_max_filesize = 2M,允許上傳文件的最大值
max_file_uploads = 20,允許一次上傳的最大文件數
post_max_size = 8M,POST方式發送數據的最大值
max_execution_time = -1,設置了腳本被解析器終止之前允許的最大執行時間,單位為秒,防止程序寫的不好而占盡服務器資源
max_input_time = 60,腳本解析輸入數據允許的最大時間,單位是秒
max_input_nesting_level = 64,設置輸入變量的嵌套深度
max_input_vars = 1000,接受多少輸入的變量(限制分別應用于GET,_POST,$_COOKIE超全局變量)指令的使用減輕了以哈希碰撞來進行拒絕服務攻擊的可能性。如有超過指令指定數量的變量,將會導致E_WARING的產生,更多的輸入變量將會從請求中截斷。
memory_limit = 128M,最大單線程的獨立內存使用量。也就是一個web請求,給與線程最大的內存使用量的定義。
注意:在客戶端限制的代碼,可以通過在瀏覽器中修改代碼,而使限制沒有用。所以限制都應該在服務器端。
服務器端限制:
限制上傳文件大小(通過size)
限制上傳文件類型(in_array(后綴,數組),判斷文件后綴是否在指定規定類型的數組里)
檢測是否為真實圖片類型(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實現文件上傳與下載,包括了文件上傳,php方面的內容,希望對PHP教程有興趣的朋友有所幫助。
本文原創發布php中文網,轉載請注明出處,感謝您的尊重!
總結
以上是生活随笔為你收集整理的php实现附件上传下载,PHP实现文件上传与下载的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: php 验证微信token_php之微信
 - 下一篇: eclipse php uml,Ecli