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打造高品质的直播功能。

    随着现代化科技的不断发展,直播功能已经成为许多企业和个人应用中必不可少的一部分。为了提供高质量的直播功能,许多开发人员必须掌握各种技术和方法,其中PHP是一种非常流行的语言。在本文中,我们将向您介绍如何…

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

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

    2018年3月7日 PHP案例操作
    0215
  • 详解php基于redis的list型数据结构实现ip限流操作

    在日常的业务功能开发中,如果要 限制任意一个ip在连续的某一段时间内,只能访问某个接口一定的次数,需要如何实现呢?这种功能需求通常是用来应对防止脚本恶意刷接口的情况,目前网上已经有很多比较完善的限流方案…

    2022年6月27日
    0122
  • PHP8中的数组函数:array_chunk()的高效应用方法。

    随着PHP8的发布,数组函数的效率得到了大幅度提升。其中一个非常有用的数组函数是array_chunk(),它可以将一个数组按照指定大小分割成多个子数组。在本文中,我们将探讨如何高效地使用array_chunk()。简单的使用方…

    2023年5月21日
    01
  • 关于PHP类型的转换

    自动转换: 通常自动转换是弱类语言的一个最基本也最方便的一个特征:它会在各种运算中根据运算符的需要也将非该运算符所能处理的数据转换为可以处理的数据。常见情形如下: if(数据){}:转为bool类型 算术运算符:…

    2018年3月17日
    0213
  • PHP8中的函数:str_contains()的实用技巧。

    PHP8中新增的str_contains()函数是一种非常实用的字符串处理功能,它能够快速地判断一个字符串是否包含某一个子字符串。在实际应用中,它可以帮助我们快速定位出数据中的关键字,从而更加高效地进行数据处理和分析…

    2023年5月21日
    03
  • PHP实现MongoDB数据库分片的方法。

    随着数据量的增加,单个MongoDB实例的存储和处理能力可能会受到限制,导致性能下降。为了更好地处理大量数据,MongoDB提供了分片的功能,在多个服务器上分散数据以提高性能和可用性。PHP作为一种常用的Web编程语言…

    2023年5月21日
    08
  • 如何在PHP中进行虚拟人和语音交互。

    在当今快速发展的互联网时代,虚拟人和语音交互成为了最具前景的技术热点。这些技术可以为企业提供更便捷的客户服务,也可以为用户提供更人性化的体验。而PHP作为一款广泛应用于Web开发的语言,也可以通过多种方式…

    2023年5月28日
    022

联系我们

QQ:951076433

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