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

搜索
博主信息
博文 145
粉絲 7
評(píng)論 7
訪問(wèn)量 198884
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
02月19日作業(yè):?jiǎn)挝募投辔募蟼?/div>
李東亞1??3????12?
原創(chuàng)
810人瀏覽過(guò)

作業(yè)一(單文件上傳(僅限pdf上傳))

目錄

1、html代碼:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>上傳文件</title>
  6. </head>
  7. <body>
  8. <form action="demo.php" method="POST" enctype="multipart/form-data">
  9. <fieldset>
  10. <legend>頭像上傳</legend>
  11. <input type="hidden" name='MAX_FILE_SIZE' value=''>
  12. <input type="file" name='user_pic'>
  13. <button>上傳</button>
  14. </fieldset>
  15. </form>
  16. </body>
  17. </html>

2、demo.php代碼:

  1. <?php
  2. // phpinfo();
  3. // print_r($_FILES);
  4. try{
  5. $error_code=$_FILES['user_pic']['error'];
  6. // echo $error_code.'<br>';
  7. // var_dump($error_code);
  8. // echo UPLOAD_ERR_CANT_WRITE;
  9. if ($error_code > UPLOAD_ERR_OK){
  10. switch($error_code){
  11. case UPLOAD_ERR_INI_SIZE:
  12. throw new Exception('文件太大,超過(guò)服務(wù)器接收大小');
  13. break;
  14. case UPLOAD_ERR_FORM_SIZE:
  15. throw new Exception('文件大小超過(guò)網(wǎng)頁(yè)限制大小');
  16. break;
  17. case UPLOAD_ERR_PARTIAL:
  18. throw new Exception('文件上傳不完整');
  19. break;
  20. case UPLOAD_ERR_NO_TMP_DIR:
  21. throw new Exception('沒有找到可以臨時(shí)存儲(chǔ)文件的目錄文件');
  22. break;
  23. case UPLOAD_ERR_CANT_WRITE:
  24. throw new Exception('沒有上傳權(quán)限');
  25. break;
  26. default:
  27. throw new Exception('未知類型錯(cuò)誤');
  28. }
  29. }else{
  30. $upfile=$_FILES['user_pic']['tmp_name'];
  31. // echo $upfile;
  32. $type='pdf';
  33. if (is_uploaded_file($upfile)){
  34. $filetype=pathinfo($_FILES['user_pic']['name'])['extension'];
  35. if ($filetype === $type){
  36. $newupname=__DIR__.'\uploadfile'.DIRECTORY_SEPARATOR.md5($_FILES['user_pic']['name']).time().'.'.$filetype;
  37. echo $newupname;
  38. if(move_uploaded_file($upfile,$newupname)){
  39. echo '<script>alert("上傳成功");location.href="form.html";</script>';
  40. }
  41. }else{
  42. throw new Exception('文件類型不允許上傳,請(qǐng)上傳PDF格式');
  43. }
  44. }else{
  45. throw new Exception('上傳后,文件非法錯(cuò)誤');
  46. }
  47. }
  48. }catch (Exception $e){
  49. echo $e->getMessage();
  50. }

作業(yè)二(多文件上傳,總上傳文件不能大于10M(修改php.ini里面的post_max_size的值為10M即可),且只能傳office文檔)

1、html代碼:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>上傳文件</title>
  6. </head>
  7. <body>
  8. <form action="demo2.php" method="POST" enctype="multipart/form-data">
  9. <fieldset>
  10. <legend>頭像上傳</legend>
  11. <!-- <input type="hidden" name='MAX_FILE_SIZE' value=''> -->
  12. <input type="file" name='user_pic[]'>
  13. <input type="file" name='user_pic[]'>
  14. <input type="file" name='user_pic[]'>
  15. <!-- <input type="file" name='user_pic[]'> -->
  16. <button>上傳</button>
  17. </fieldset>
  18. </form>
  19. </body>
  20. </html>

2、公共處理函數(shù):代碼

  1. <?php
  2. function verify($file){
  3. try{
  4. $error_code=$file[3];
  5. // echo $error_code.'<br>';
  6. // var_dump($error_code);
  7. // echo UPLOAD_ERR_CANT_WRITE;
  8. if ($error_code > UPLOAD_ERR_OK){
  9. switch($error_code){
  10. case UPLOAD_ERR_INI_SIZE:
  11. throw new Exception('文件太大,超過(guò)服務(wù)器接收大小');
  12. break;
  13. case UPLOAD_ERR_FORM_SIZE:
  14. throw new Exception('文件大小超過(guò)網(wǎng)頁(yè)限制大小');
  15. break;
  16. case UPLOAD_ERR_PARTIAL:
  17. throw new Exception('文件上傳不完整');
  18. break;
  19. case UPLOAD_ERR_NO_TMP_DIR:
  20. throw new Exception('沒有找到可以臨時(shí)存儲(chǔ)文件的目錄文件');
  21. break;
  22. case UPLOAD_ERR_CANT_WRITE:
  23. throw new Exception('沒有上傳權(quán)限');
  24. break;
  25. case UPLOAD_ERR_NO_FILE:
  26. throw new Exception('沒有文件被上傳');
  27. break;
  28. default:
  29. throw new Exception('未知類型錯(cuò)誤');
  30. }
  31. }else{
  32. $upfile=$file[2];
  33. // echo $upfile;
  34. $type=['pdf','doc','txt','xls','ppt','docx','xlsx','pptx'];
  35. if (is_uploaded_file($upfile)){
  36. $filetype=pathinfo($file[0])['extension'];
  37. if (in_array($filetype,$type)){
  38. $newupname=__DIR__.'\uploadfile'.DIRECTORY_SEPARATOR.md5($file[0]).time().'.'.$filetype;
  39. // echo $newupname;
  40. if(move_uploaded_file($upfile,$newupname)){
  41. echo "{$file[0]}:文件上傳成功";
  42. }
  43. }else{
  44. throw new Exception("{$file[0]}文件類型不允許上傳,請(qǐng)上傳office辦公文檔");
  45. }
  46. }else{
  47. throw new Exception('上傳后,文件非法錯(cuò)誤');
  48. }
  49. }
  50. }catch (Exception $e){
  51. echo $e->getMessage();
  52. }
  53. }

3、demo2.php代碼:

  1. <?php
  2. require 'upfunction.php';
  3. // phpinfo();
  4. // print_r($_FILES);
  5. $offices=[];
  6. //
  7. foreach ($_FILES as $file) {
  8. // print_r($file);
  9. for($i=0;$i<count($file['name']);$i++) {
  10. $offices[]=[
  11. $file['name'][$i],
  12. $file['type'][$i],
  13. $file['tmp_name'][$i],
  14. $file['error'][$i],
  15. $file['size'][$i]
  16. ];
  17. }
  18. }
  19. $i=0;
  20. foreach ($offices as $office) {
  21. // print_r($office);
  22. verify($office);
  23. echo '<br>';
  24. }

作業(yè)三

1、知識(shí)點(diǎn):

  • 關(guān)于上傳php.ini中相關(guān)的設(shè)置:
    file_upload:On/Off是否允許文件上傳
    upload_tmp_dir:文件上傳的臨時(shí)目錄
    upload_max_filesize:單個(gè)文件上傳的最大容量
    post_max_size:通過(guò)POST一次性上傳數(shù)據(jù)的大小,至少要大于upload_max_filesize;
    max_file_uploads:?jiǎn)蝹€(gè)請(qǐng)求,允許上傳的最大的文件的數(shù)量
    2、超全局常量:$_FILES;
  1. [name] => user_pic.jpg
  2. [type] => image/jpeg
  3. [tmp_name] => /Applications/MAMP/tmp/php/phprqLCR1
  4. [error] => 0
  5. [size] => 20029

錯(cuò)誤代碼:

  • 0: UPLOAD_ERR_OK, 沒有錯(cuò)誤發(fā)生,文件上傳成功
  • 1: UPLOAD_ERR_INI_SIZE, 上傳的文件超過(guò)了 php.ini 中 upload_max_filesize 選項(xiàng)限制的值
  • 2: UPLOAD_ERR_FORM_SIZE, 上傳文件的大小超過(guò)了 HTML 表單中 MAX_FILE_SIZE 選項(xiàng)指定的值
  • 3: UPLOAD_ERR_PARTIAL, 文件只有部分被上傳(網(wǎng)絡(luò)臨時(shí)中斷,只有部分上傳)
  • 4: UPLOAD_ERR_NO_FILE, 沒有文件被上傳
  • 6: UPLOAD_ERR_NO_TMP_DIR, 找不到臨時(shí)文件目錄(文件夾或改動(dòng),極少遇到,除非人為惡意)
  • 7: UPLOAD_ERR_CANT_WRITE, 文件寫入失敗, 上傳目錄無(wú)寫的權(quán)限

3、phpinfo();查詢php的版本信息;
4、pathinfo();

  1. Array
  2. (
  3. [dirname] => 0219
  4. [basename] => demo2.php
  5. [extension] => php
  6. [filename] => demo2
  7. )

5、in_array($value,$array):判斷$value是否在$array中,返回布爾值;
6、is_uploaded_file($tmpFile):檢測(cè)是否是通過(guò)POST方式上傳的文件, 本質(zhì)上就是檢測(cè)臨時(shí)文件是否是一個(gè)合法的文件;
7、move_uploaded_file($tmpFile, $destName): 把$tmpFile的臨時(shí)文件移動(dòng)到$destName文件中,一般要跟上絕對(duì)路徑;防止找不到目標(biāo)文件目錄;
8、<script>alert("上傳成功");location.href="form1.html";</script>彈窗提示,并返回指定頁(yè)面;
10、html標(biāo)簽:

  1. <!-- action:處理上傳腳本, method: 必須是POST, multipart/form-data:允許接收表單提交的文件 -->
  2. <form action="demo3.php" method="POST" enctype="multipart/form-data">
  3. <fieldset>
  4. <legend>頭像上傳</legend>
  5. <!-- 這個(gè)上傳文件大小的限制字段,必須寫到file字段的前面 -->
  6. <input type="hidden" name="MAX_FILE_SIZE" value="600">
  7. <input type="file" name="user_pic">
  8. <!-- <input type="file" name="user_pic1">
  9. <input type="file" name="user_pic2">
  10. <input type="file" name="user_pic3"> -->
  11. <button>上傳</button>
  12. </fieldset>
  13. </form>
批改老師:天蓬老師天蓬老師

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

老師批語(yǔ):簡(jiǎn)單的文件上傳并不難, 本堂課也是應(yīng)許多同學(xué)一再要求,希望從頭到尾詳細(xì)介紹一下文件上傳的原理與實(shí)現(xiàn), 希望你能幫到大家
本博文版權(quán)歸博主所有,轉(zhuǎn)載請(qǐng)注明地址!如有侵權(quán)、違法,請(qǐng)聯(lián)系admin@php.cn舉報(bào)處理!
全部評(píng)論 文明上網(wǎng)理性發(fā)言,請(qǐng)遵守新聞評(píng)論服務(wù)協(xié)議
0條評(píng)論
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長(zhǎng)!
關(guān)注服務(wù)號(hào) 技術(shù)交流群
PHP中文網(wǎng)訂閱號(hào)
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時(shí)隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號(hào)
發(fā)現(xiàn)有趣的

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

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