Blogger Information
Blog 15
fans 0
comment 0
visits 11166
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
自动加载文件、文件上传操作
乐作人生
Original
807 people have browsed it

1. 自动加载文件

  • loader文件
    1. try{// 在try代码块内触发异常
    2. // spl_autoload_register()通过回调自动加载外部文件
    3. spl_autoload_register(function ($class){
    4. // 把$class中的\替换成系统分隔符
    5. $path=str_replace('\\', DIRECTORY_SEPARATOR, $class);
    6. // DIRECTORY_SEPARATOR是一个显示系统分隔符的常量
    7. $file=__DIR__. DIRECTORY_SEPARATOR .$path .'.php';
    8. // is_file() 检查指定的文件是否是常规的文件;file_exists() 检查文件或目录是否存在
    9. if(!(is_file($file) && file_exists($file)))
    10. // 抛出异常
    11. throw new Exception ('不是文件名或文件不存在');
    12. // 文件存在即引入
    13. require $file;
    14. });
    15. }catch(Exception $e){// 捕获异常
    16. die($e->getMessage());
    17. }
    1. // 自动加载外部文件类
    2. require __DIR__ .'/loader.php';// 引入loader文件
    3. use inc\lib\Test1;// 类的别名与原始别名相同时,可以省去
    4. use inc\lib\Test2 as Te;
    5. echo Test1::$site, '<br>';
    6. echo Te::$site, '<br>';

2. 单文件, 多文件上传

  • 单文件
    1. <?php
    2. printf('<pre>%s</pre>',print_r($_FILES, true));
    3. echo '<hr>';
    4. //printf()输出格式化的字符串
    5. // print_r()用于打印变量;第2个参数为true则不输出结果,将结果赋值给一个变量,false则直接输出结果
    6. // $_FILES 是一个预定义的数组,用来获取通过 POST 方法上传文件的相关信息。如果为单个文件上传,那么 $_FILES 为二维数组;如果为多个文件上传,那么 $_FILES 为三维数组
    7. // 一、
    8. // 步骤1.获取错误代码
    9. // $error=$_FILES['pic']['error'] ?? null;
    10. // // 步骤2.判断错误代码
    11. // if($error===0) echo '文件上传成功<hr>';
    12. // elseif($error===1) echo '超过了php.ini中的大小<hr>';
    13. // elseif($error===2) echo '超过了上传表单中的MAX_FILE_SIZE值的大小<hr>';
    14. // elseif($error===4) echo '文件上传失败<hr>';
    15. // 二、
    16. // 1.获临时文件类型
    17. // $type = $_FILES['my_pic']['type'];
    18. // // strstr() 函数搜索字符串在另一字符串中的第一次出现
    19. // if (strstr($type, '/', true) !== 'image') echo '文件类型正确<hr>';// 搜索/在$type中第一次出现之前的字符串部分
    20. // 三、
    21. // 1.获取临时文件名
    22. // $tmp=$_FILES['pic']['tmp_name'];
    23. // // 2. is_uploaded_file()判断 文件是否是通过POST上传的?
    24. // if (is_uploaded_file($tmp)) echo '上传文件安全<hr>';
    25. // else echo '非POST<hr>';
    26. // 四、图片上传
    27. // 1.获取临时文件名
    28. $tmpFile=$_FILES['pic']['tmp_name'];
    29. // uploads/ :用户自定义目录,文件存放处
    30. // echo strstr($_FILES['pic']['name'], '.');// 获取文件后缀.jpg
    31. // 获取最终文件名,用md5对原始文件名进行加密
    32. // echo md5($_FILES['pic']['name']).'<hr>';
    33. // echo $_FILES['pic']['name'].'<hr>';
    34. // echo strstr($_FILES['pic']['name'], '.').'<hr>';
    35. $destFileName = './uploads/' .md5($_FILES['pic']['name']).strstr($_FILES['pic']['name'], '.');
    36. // echo $destFileName.'<hr>';
    37. // move_uploaded_file(临时文件名,正式路径)
    38. if (move_uploaded_file($tmpFile, $destFileName)){
    39. echo '<img src="'. $destFileName .'" width="200px;">';// 对图片进行预览
    40. echo '<p>上传成功了</p>';
    41. }
    42. ?>
    43. <!DOCTYPE html>
    44. <html lang="en">
    45. <head>
    46. <meta charset="UTF-8">
    47. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    48. <title>单文件上传</title>
    49. </head>
    50. <body>
    51. <!-- 文件上传必须满足2个条件:1、method:post;2、enctype: multipart/form-data -->
    52. <form action="" method="post" enctype="multipart/form-data">
    53. <fieldset><!-- 对表单中的相关元素进行分组 -->
    54. <legend>文件上传</legend>
    55. <!-- 设置允许上传的文件大小, 这个隐藏域必须写到input:file -->
    56. <!-- <input type="hidden" name="MAX_FILE_SIZE" value="5000"/> -->
    57. <input type="file" name="pic" id=""/>
    58. <button>上传</button>
    59. </fieldset>
    60. </form>
    61. </body>
    62. </html>
  • 多文件
    1. <?php
    2. printf('<pre>%s</pre>',print_r($_FILES, true));
    3. // 将文件从临时目录中移动到正式的目录中
    4. // move_uploaded_file(临时文件, 正式路径)
    5. // 1.获临时文件名
    6. // $tmpFile = $_FILES['my_pic']['tmp_name'];
    7. // 最终文件名
    8. // echo strstr($_FILES['my_pic']['name'], '.');
    9. foreach ($_FILES as $file) {
    10. if ($file['error'] === 0) {
    11. $destFileName = './uploads/' . md5($file['name']). strstr($file['name'], '.');
    12. if (move_uploaded_file($file['tmp_name'], $destFileName)){
    13. echo '<p>上传成功了</p>';
    14. echo '<img src="'. $destFileName .'" width="200">';
    15. }
    16. }
    17. }
    18. // die;
    19. ?>
    20. <!DOCTYPE html>
    21. <html lang="en">
    22. <head>
    23. <meta charset="UTF-8">
    24. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    25. <title>多文件上传</title>
    26. </head>
    27. <body>
    28. <form action="" method="post" enctype="multipart/form-data">
    29. <fieldset>
    30. <legend>单文件上传</legend>
    31. <input type="file" name="my_pic1" id="">
    32. <input type="file" name="my_pic2" id="">
    33. <input type="file" name="my_pic3" id="">
    34. <button>上传</button>
    35. </fieldset>
    36. </form>
    37. </body>
    38. </html>
Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:文件上传是不是也挺简单的,有套路的
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post