首页 > 后端开发 > php教程 > PHP如何实现文件上传

PHP如何实现文件上传

qzuser
发布: 2023-03-18 20:50:01
转载
2797 人浏览过

PHP如何实现文件上传 ?本篇文章就给大家通过代码示例介绍PHP实现文件上传的方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

这里使用PHP的全局数组$_FILES来实现文件上传:

  • $_FILES["file"]["name"] - 被上传文件的名称

  • $_FILES["file"]["type"] - 被上传文件的类型

  • $_FILES["file"]["size"] - 被上传文件的大小,以字节计

  • $_FILES["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称

  • $_FILES["file"]["error"] - 由文件上传导致的错误代码

【相关视频教程推荐:php教程

HTML代码:

1

2

3

4

5

<form action="upload_file.php" method="post" enctype="multipart/form-data">

    <label for="file">Filename:</label>

    <input type="file" name="file" id="file" /><br />

    <input type="submit" name="submit" value="Submit" />

</form>

登录后复制

PHP代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

if (!empty($_FILES)) {

  

    // 限制文件大小

    $file_size $_FILES["file"]["size"];

    // 限制2M大小

    if ($file_size > 1024 * 1024 * 2) {

        echo '文件大小超过限制';

        exit;

    }

  

    // 限制文件上传类型

    $file_type $_FILES["file"]["type"];

    $file_type_arr = ['image/jpg''image/jpeg''image/png''image/pjpeg''image/gif'];

    if (!in_array($file_type$file_type_arr)) {

        echo '上传文件类型错误';

        exit;

    }

  

    // 文件上传到服务器临时文件夹之后的文件名

    $tem_name $_FILES['file']['tmp_name'];

    // 取得文件后缀名

    $file_fix explode('.'$_FILES['file']['name'])[1] ? explode('.'$_FILES['file']['name'])[1] : 'png';

    // 文件重命名,这里自动生成一个不重复的名字,方便使用

    $name = md5(uniqid(md5(microtime(true)), true)) . '.' $file_fix;

    // 要存放文件的目录定义,这里按日期分开存储

    $file_dir = dirname(__FILE__) . '/upload/' date('Ymd') . '/';

    // 检测要存放文件的目录是否存在,不存在则创建

    if (!is_dir($file_dir)) {

        mkdir($file_dir, 0755, true);

    }

    // 移动文件到指定目录下

    @ move_uploaded_file($tem_name$file_dir $name);

  

    echo '上传成功';

    exit;

else {

    echo '文件上传失败';

    exit;

}

登录后复制

 总结:以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。

以上是PHP如何实现文件上传的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
怎么学好php
来自于 1970-01-01 08:00:00
0
0
0
PHP扩展intl
来自于 1970-01-01 08:00:00
0
0
0
php数据获取?
来自于 1970-01-01 08:00:00
0
0
0
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板