PHP文件上传入门案例

为了方便管理这些上传的文件,我们通常会将上传的文件保存到uploads目录下面

PHP文件上传入门案例

防止上传文件过大

思路:首先给定一个文件的最大限制,然后再拿上传的文件的大小 和 最大的限制进行比较,文件大小单位是字节,字节之间的转换:1024

1024字节 = 1KB

1024KB = 1MB

1024MB = 1GB

PHP文件上传入门案例

修改一下表单的提交地址:

PHP文件上传入门案例

确实阻止了文件的上传,但是还有一个小问题:

虽然上传时,拦截了,但是该文件还是在临时的文件夹中走了一圈,如何实现,如果文件过大的话,连临时目录都不让其进去

需要修改php的配置文件了,将其最大的限制修改为2MB,这样,让我们上传的文件大小超过2MB,就无法进入到临时目录

PHP文件上传入门案例

测试一把:

PHP文件上传入门案例

错误指的是提交的表单内容,超过了表单提交的最大限制,所以为了演示效果,我们临时将表单提交的最大限制修改为80MB

PHP文件上传入门案例

防止文件被覆盖

如果多个用户,同时上传文件,如果文件的名字固定死的话,所有用户上传的文件名字都会一样,将来就很麻烦了

思路:上传成功之后,给文件命名时,取一个唯一的、随机数

PHP文件上传入门案例

PHP文件上传入门案例

分目录存放上传的文件

为什么要分目录存储?

如果上传的文件不加任何修改,直接保存到uploads目录的话,uploads目录就会出现很多文件,不便于查找

PHP文件上传入门案例

通常我们会按照日期的格式分目录保存

PHP文件上传入门案例

PHP文件上传入门案例

控制上传的文件类型

假设有这样一个需求:上传用户的头像

这个时候我们只能上传图片(jpg、png、gif),所以我们就应该上传的时候做一个判断

思路:首先,定义一个数组保存支持的上传的文件的类型,然后再拿上传的文件的实际类型和支持的类型进行比较

PHP文件上传入门案例

PHP文件上传入门案例

但是,上面的代码存在一个小问题:

如果手动的把一个excel文件的后缀修改为.jpg了。’

上传的时候,就会把php蒙混过去,如果用户上传的是脚本(js等),就会很危险

所以我们还要做一个更加严格的过滤

需要借助PHP提供的类(php 内置的一个类)finfo,在手册的位置:

PHP文件上传入门案例 PHP文件上传入门案例

 

本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/10071.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
重蔚重蔚管理团队
上一篇 2018年9月15日 10:52
下一篇 2018年9月18日 22:09

相关推荐

  • 重蔚自留地PHP学习第46天——通过PDO连接数据库

    上篇文章学习了数组的遍历https://www.cwhello.com/10789.html 下面做些总结。 复合数据的保存:数组和对象 保存文件:对符复合数据进行序列化保存 读取文件:反序列化得到数据类型 对象反序列化必须要先加载对应的…

    2023年5月22日 我php路线
    019
  • PHP入门指南:PHP和Prometheus。

    PHP作为一种开源的脚本语言,已经有20多年的历史。它主要被用于Web开发,特别是用于服务端的脚本。PHP的使用非常广泛,它被用于构建许多大型的Web应用程序和网站。Prometheus则是一种开源的监控系统和时间序列数据…

    2023年5月22日
    03
  • PHP函数的介绍

    说明:函数的作用在于对一个功能的封装,封装后在别的页面中引入并调用,可以节省代码量,可以冗余。 8.1.1函数的定义 Function 函数名(【形参1】【,参数2】【,形参n......】){ 要封装到函数的代码; 【return 返回…

    2018年4月4日 PHP自学教程
    0233
  • PHP中如何进行即时聊天开发。

    随着即时通讯技术的不断发展,越来越多的网站和应用程序开始提供即时聊天功能。对于一个有经验的开发者来说,开发一个即时聊天功能似乎并不是很困难。本文将探讨如何在PHP中进行即时聊天开发,帮助初学者和有经验的…

    2023年5月23日
    01
  • PHP微信支付开发实例详细教程​(附代码)

    HP微信支付开发过程,分享给大家,供大家参考,具体内容如下 1.开发环境 Thinkphp 3.2.3 微信:服务号,已认证 开发域名:http://test.paywechat.com (自定义的域名,外网不可访问) 2.需要相关文件和权限 微信支付…

    2018年3月7日 PHP案例操作
    0211
  • PHP中 Exception异常处理

    异常(Exception)是用于在指定的错误(异常)情况发生时改变脚本的正常流程。这种情况称为异常。 PHP 5 中提供了一种新的面向对象的错误处理方法。 当异常被触发时,通常会发生: 当前代码状态被保存 代码执行被切…

    2018年3月13日
    0230
  • 教你安装好的wamp5怎么开启gd库。

    在安装好的WAMP5中开启GD库的步骤如下: 你需要确保你的PHP版本支持GD库,GD库是PHP的一个扩展库,用于处理图形和图像,你可以通过查看phpinfo()函数的输出来确认你的PHP是否支持GD库,如果你看到GD库已经被启用,…

    2024年7月2日
    00
  • 利用PHP8中的get_debug_type()函数进行开发调试的技巧。

    PHP 8是PHP的最新版本,并且带来了许多有用的功能和改进。其中一个重要的功能是get_debug_type()函数,它可以帮助开发调试,特别是在处理变量类型和对象时。本文将介绍get_debug_type()函数及其使用技巧,以及如何…

    2023年5月21日
    00

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息