首页 > 问答 正文
php写入文件失败怎么回事

时间:2023-09-24 作者:佚名

为了更好的学习PHP,我们将极为复杂的PHP的文件上传归纳总结成为了6个步骤。

在实际使用过程中,你按照这6个步骤就能够很好的完成PHP的文件上传:

一、判断是否有错误码

系统返回的错误码详解:

错误码说明

0无误,可以继续进行文件上传的后续操作。

1超出上传文件的最大限制,upload_max_filesize = 2M php.ini中设置,一般默认为2M。可根据项目中的实际需要来修改

2超出了指定的文件大小,根据项目的业务需求指定上传文件的大小限制

3只有部分文件被上传

4文件没有被上传

6找不到临时文件夹,可能目录不存在或没权限

7文件写入失败,可能磁盘满了或没有权限

注:错误码中没有5。

二、自定义判断是否超出文件大小范围

在开发上传功能时。我们作为开发人员,除了php.ini中规定的上传的最大值外。

我们通常还会设定一个值,是业务规定的上传大小限制。

例如:

新浪微博或者QQ空间只准单张头像图片2M。而在上传图册的时候又可以超过2M来上传。

所以说,它的系统是支持更大文件上传的。

此处的判断文件大小,我们用于限制实际业务中我们想要规定的上传的文件大小。

三、判断后缀名和mime类型是否符合

在网络世界里面也有坏人。他们会把图片插入病毒,在附件中上传病毒,他们会在网页中插入病毒或者黄色图片。

我们需要对于上传的文件后缀和mime类型都要进行判断才可以。

MIME(Multipurpose Internet Mail Extensions)是多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。

在判断后缀和MIME类型的时候,我们会用到PHP的一个函数in_array(),该函数传入两个参数。

第一个参数是要判断的值;

第二个参数是范围数组。

我们用这个函数来判断文件的后缀名和mime类型是否在允许的范围内。

四、生成文件名

我们的文件上传成功了,不会让它保存原名。

因为,有些人在原名中有敏感关键词会违反我国的相关法律和法规。

我们可以采用date()、mt_rand()或者unique()生成随机的文件名。

五、判断是否是上传文件

文件上传成功时,系统会将上传的临时文件上传到系统的临时目录中。产生一个临时文件。

同时会产生临时文件名。我们需要做的事情是将临时文件移动到系统的指定目录中。

而移动前不能瞎移动,或者移动错了都是不科学的。移动前我们需要使用相关函数判断上传的文件是不是临时文件。

is_uploaded_file()传入一个参数($_FILES中的缓存文件名),判断传入的名称是不是上传文件。

六、移动临时文件到指定位置

临时文件是真实的临时文件,我们需要将其移动到我们的网站目录下面了。

让我们网站目录的数据,其他人可以访问到。

我们使用:move_uploaded_file()。

这个函数是将上传文件移动到指定位置,并命名。

传入两个参数:

第一个参数是指定移动的上传文件;

第二个参数是指定的文件夹和名称拼接的字符串。

喜欢 (0)

本文信息为网友自行发布旨在分享与大家阅读学习,文中的观点和立场与本站无关,如对文中内容有异议请联系处理。

本文链接:https://www.paituo.cc/wenda/1219436.html

上一篇:贴对联是哪天
下一篇:返回列表
  • 小编推荐

    联想笔记本风扇转速调节快捷键

    联想笔记本风扇转速调节快捷键,笔记本电脑内置风扇的使用,简介如下现在很多游戏本品牌都会在自家的系统上,使用类似电脑管家的控制软件,设定自身产品有更多功能,来增加自己产品的差异化体验。 今天小编就给大家带来,机械师T58-V的...

    dota2怎么改名字和头像

    dota2怎么改名字和头像,改dota2名字的方式,简介如下近日,由一群“老人”Maybe、Charles、Fy、LaNm国士无双带队组成的Azure Ray战队更换了战队头像。...

    打印有黑色条纹是什么原因

    打印有黑色条纹是什么原因,打印机黑边处理办法分享,简介如下上一期我们我们讲到了打印色淡甚至空白的情况,但是还有很多用户在打印过程中遇到的是完全相反的情况,那就是打印全黑,或是打印出现一些莫名其妙的污迹和线条。一起来看看...

    别人视频上的文字怎么去掉

    别人视频上的文字怎么去掉,视频中的文字的去掉方式,简介如下原创视频更能够吸引人,但是毕竟热点有限,想要随时保持活跃度和吸引力就必须借助更多的视频素材来留住粉丝。但是很多视频素材是有水印、文字、LOGO或者一些图像的,那...

    mdb文件是什么数据库

    mdb文件是什么数据库,mdb数据库导入的办法,简介如下mdb格式文件是一种数据库文件,是微软 Access软件生成的存储格式。mdb格式对于数据操作非常方便,应用也比较广泛。下面,我就给大家介绍一下win10系统下...

    vue子组件向父组件传递数据原理

    vue子组件向父组件传递数据原理,vue父子组件通信技术,简介如下子组件如何将值回传给父组件 自定义事件 父组件是使用 props 传递数据给子组件,但如果子组件要把数据传递回去,就需要使用自定义事件! 我们可以使用 v-on...

    lol安妮是什么阵营

    lol安妮是什么阵营,黑暗之女安妮的背景故事介绍,简介如下前言: 八年之久发展的英雄联盟,其无数次转换了英雄背景故事。再原有的背景故事经过转换之后,其故事更为精彩且更有深度。 深度探索英雄背景故事系列之黑暗之女—安妮 ...

    添加开机启动项命令

    添加开机启动项命令,设置开机启动项的步骤,简介如下电脑开机自启动项是指在电脑开机时自动启动的程序。例如,我们经常使用的一些软件,如QQ、微信、迅雷等,可以设置成开机自启动,这样我们在电脑开机后就不需要再手动打开...