亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索
博主信息
博文 145
粉絲 7
評論 7
訪問量 198464
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
PHP實戰(zhàn):文件上傳
李東亞1??3????12?
原創(chuàng)
1137人瀏覽過

文件上傳代碼練習(xí):

單文件上傳

  1. <?php
  2. // printf("<pre>%s</pre>",print_r($_FILES,true));
  3. class upException extends Exception
  4. {
  5. public function __toString()
  6. {
  7. return '錯誤信息:'.$this->message.';錯誤代碼:'.$this->code;
  8. }
  9. }
  10. try{
  11. // echo $type;
  12. // echo $name,$type,$tmp_name,$error,$size;
  13. switch($error)
  14. {
  15. case UPLOAD_ERR_OK:
  16. // var_dump(trim(strstr($type,'/'),'/'));
  17. // var_dump(trim(strstr($type,'/',true),'/')!=='jpeg');
  18. $ty=trim(strstr($type,'/'),'/');
  19. if($ty==='jpeg'){
  20. if(file_exists($tmp_name)&&is_uploaded_file($tmp_name))
  21. {
  22. $obj_type=$ty;
  23. $obj_file='images/'.time().'.'.$obj_type;
  24. move_uploaded_file($tmp_name,$obj_file);
  25. }
  26. exit("<script>alert('上傳成功');location.href='demo1.php'</script>");
  27. }else{
  28. exit("<script>alert('格式不正確,請重新上傳!');location.href='demo1.php'</script>");
  29. }
  30. break;
  31. case UPLOAD_ERR_INI_SIZE:
  32. throw new upException('文夾過大,超過php限制',1);
  33. break;
  34. case UPLOAD_ERR_FORM_SIZE:
  35. throw new upException('文件過大,超過表單限制',2);
  36. break;
  37. case UPLOAD_ERR_PARTIAL:
  38. throw new upException('上傳文件不完整',4);
  39. break;
  40. case UPLOAD_ERR_NO_FILE:
  41. throw new upException('沒有文夾上傳',5);
  42. break;
  43. case UPLOAD_ERR_NO_TMP_DIR:
  44. throw new upException('無臨時目錄',6);
  45. break;
  46. case UPLOAD_ERR_CANT_WRITE:
  47. throw new upException('權(quán)限不夠,文件寫入失敗',7);
  48. break;
  49. default:
  50. echo "未知錯誤";
  51. }}catch(upException $e){
  52. echo $e;
  53. }

多文件上傳

  1. <?php
  2. // printf("<pre>%s</pre>",print_r($_FILES,true));
  3. class upException extends Exception
  4. {
  5. public function __toString()
  6. {
  7. return '錯誤信息:'.$this->message.';錯誤代碼:'.$this->code;
  8. }
  9. }
  10. foreach($_FILES as $file){
  11. extract($file);
  12. // echo $name;
  13. try{
  14. // echo $type;
  15. // echo $name,$type,$tmp_name,$error,$size;
  16. switch($error)
  17. {
  18. case UPLOAD_ERR_OK:
  19. // var_dump(trim(strstr($type,'/'),'/'));
  20. // var_dump(trim(strstr($type,'/',true),'/')!=='jpeg');
  21. $ty=trim(strstr($type,'/'),'/');
  22. if($ty==='jpeg'){
  23. if(file_exists($tmp_name)&&is_uploaded_file($tmp_name))
  24. {
  25. $obj_type=$ty;
  26. $obj_file='images/'.trim($name,'.jpg').time().'.'.$obj_type;
  27. // echo $obj_file,'<br>';
  28. move_uploaded_file($tmp_name,$obj_file);
  29. }
  30. }else{
  31. echo ("<script>alert('格式不正確,請重新上傳!');location.href='demo2.php'</script>");
  32. }
  33. break;
  34. case UPLOAD_ERR_INI_SIZE:
  35. throw new upException("{$name}文夾過大,超過php限制",1);
  36. break;
  37. case UPLOAD_ERR_FORM_SIZE:
  38. throw new upException("{$name}文件過大,超過表單限制",2);
  39. break;
  40. case UPLOAD_ERR_PARTIAL:
  41. throw new upException("{$name}上傳文件不完整",4);
  42. break;
  43. case UPLOAD_ERR_NO_FILE:
  44. throw new upException("{$name}沒有文夾上傳",5);
  45. break;
  46. case UPLOAD_ERR_NO_TMP_DIR:
  47. throw new upException("{$name}無臨時目錄",6);
  48. break;
  49. case UPLOAD_ERR_CANT_WRITE:
  50. throw new upException("{$name}權(quán)限不夠,文件寫入失敗",7);
  51. break;
  52. default:
  53. echo "未知錯誤";
  54. }
  55. // exit("<script>alert('上傳成功');location.href='demo2.php'</script>");
  56. }catch(upException $e){
  57. echo ("<script>alert('{$e}');</script>");
  58. }}
  59. exit("<script>alert('上傳完畢!');location.href='demo2.php'</script>");

批量上傳:

  1. <?php
  2. // printf("<pre>%s</pre>",print_r($_FILES,true));
  3. // die();
  4. class upException extends Exception
  5. {
  6. public function __toString()
  7. {
  8. return '錯誤信息:'.$this->message.';錯誤代碼:'.$this->code;
  9. }
  10. }
  11. $files=$_FILES['my_file'];
  12. foreach($files['error'] as $key=>$value){
  13. try{
  14. switch($value)
  15. {
  16. case UPLOAD_ERR_OK:
  17. // var_dump(trim(strstr($type,'/'),'/'));
  18. // var_dump(trim(strstr($type,'/',true),'/')!=='jpeg');
  19. $ty=trim(strstr($files['type'][$key],'/'),'/');
  20. if($ty==='jpeg'){
  21. if(file_exists($files['tmp_name'][$key])&&is_uploaded_file($files['tmp_name'][$key]))
  22. {
  23. $obj_type=$ty;
  24. $obj_file='images/'.trim($files['name'][$key],'.jpg').time().'.'.$obj_type;
  25. // echo $obj_file,'<br>';
  26. move_uploaded_file($files['tmp_name'][$key],$obj_file);
  27. }
  28. }else{
  29. echo ("<script>alert('{$files['name'][$key]}格式不正確,請重新上傳!');</script>");
  30. }
  31. break;
  32. case UPLOAD_ERR_INI_SIZE:
  33. throw new upException("{$files['name'][$key]}文夾過大,超過php限制",1);
  34. break;
  35. case UPLOAD_ERR_FORM_SIZE:
  36. throw new upException("{$files['name'][$key]}文件過大,超過表單限制",2);
  37. break;
  38. case UPLOAD_ERR_PARTIAL:
  39. throw new upException("{$files['name'][$key]}上傳文件不完整",4);
  40. break;
  41. case UPLOAD_ERR_NO_FILE:
  42. throw new upException("{$files['name'][$key]}沒有文夾上傳",5);
  43. break;
  44. case UPLOAD_ERR_NO_TMP_DIR:
  45. throw new upException("{$files['name'][$key]}無臨時目錄",6);
  46. break;
  47. case UPLOAD_ERR_CANT_WRITE:
  48. throw new upException("{$files['name'][$key]}權(quán)限不夠,文件寫入失敗",7);
  49. break;
  50. default:
  51. echo "未知錯誤";
  52. }}catch (upException $e){
  53. echo ("<script>alert('{$e}');</script>");
  54. }}
  55. exit("<script>alert('上傳完畢!');location.href='demo3.php'</script>");

演示結(jié)果



總結(jié):

1、上傳文件信息關(guān)鍵字:$_FILES(name、type、tmp_name、error、size);
2、把上傳文夾從臨時目錄移動過到目標(biāo)目錄:move_uploaded_file('tmp_name','目標(biāo)文夾目錄');
3、is_uploaded_file();判斷上傳文件的合法性
4、文件前端以表單的形式上傳:

  1. <form action="act3.php" method="POST" enctype="multipart/form-data">
  2. //文件上傳,上傳方式:post,上傳編碼:multipart/form-data
  3. <fieldset>
  4. <legend>文件上傳</legend>
  5. //隱藏域,用來限制上傳文件大小
  6. <input type="hidden" name="MAX_FILE_SIZE" value="10000000">
  7. //上傳文件:multiple:多選
  8. <input type="file" name="my_file[]" multiple>
  9. <button>上傳</button>
  10. </fieldset>
  11. </form>

5、在上傳文件時:需查看設(shè)置php.ini中:file_uploads、upload_tmp_dir、max_file_uploads、post_max_size、upload_max_filesize等相關(guān)設(shè)置
6、php常用函數(shù):
strstr($str,'分割字符',true|flase):分割字符
trim($str,'去掉的字符'):去掉字符兩端的不需要的字符
file_exists($file);檢測文件試問存在
7、script函數(shù):
alert('提示內(nèi)容'):單傳提示函數(shù);
location.href='';自動跳轉(zhuǎn)至……;

批改老師:天蓬老師天蓬老師

批改狀態(tài):合格

老師批語:文件上傳需要前后端的配合, 其實原理是很簡單的, 涉及到的函數(shù)并不多
本博文版權(quán)歸博主所有,轉(zhuǎn)載請注明地址!如有侵權(quán)、違法,請聯(lián)系admin@php.cn舉報處理!
全部評論 文明上網(wǎng)理性發(fā)言,請遵守新聞評論服務(wù)協(xié)議
0條評論
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長!
關(guān)注服務(wù)號 技術(shù)交流群
PHP中文網(wǎng)訂閱號
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號

  • 登錄PHP中文網(wǎng),和優(yōu)秀的人一起學(xué)習(xí)!
    全站2000+教程免費學(xué)