- 上传文件的必备三个条件:
上传到后台的文件
method = "post";(不可以为get方法)
enctype = "multipart/form-data";(注意哦,是data,不是date)
三者缺一不可
后台PHP的$_FILES变量用于接收文件上传的信息
输出一个二维数组,一维数组的myFile就是HTML中的type为file的input标签的name属性值;
说明文件上传到uploads文件夹成功了
- 服务端配置上传文件信息
a、可以修改临时文件保存的目录
b、post_max_size = 8M,(默认值为8M)POST方式发送数据的最大值;大于8M的发送不成功。注意:小于8M的也不一定成功,因为还受到upload_max_filesize的影响
c、超过post_max_size和upload_max_filesize都不成功
d、上传文件很大的配置:========关键字Resource==========
- 错误信息说明
- 客户端限制上传文件类型和文件大小:
accept=""属性进行文件类型限制;
如:accept = "image/png,image/jpg,image/gif"类型要以逗号隔开;
注意======
客户端的限制,用户可以在控制台修改,所以一般建议在服务器上进行限制,这样才不影响正常的运行。
进行文件大小的限制
如:
缺点:客户端做的限制对于会程序的人来说没有用。
- 服务器端的限制
限制文件上传类型
1)、获取扩展名
通过截取点(.)后面的字符串,其中:
$fileInfo = $_FILES['myFile'];//myFile为type为file的input标签的name属性值;
a、$ext=strtolower(end(explode('.',$fileInfo['name'])));
分析:(1).strtolower(string) 函数把字符串转换为小写。返回转换为小写的字符串。'
(2).end(array) 函数将内部指针指向数组中的最后一个元素,并输出。如果成功则返回数组中最后一个元素的值,如果数组为空则返回 FALSE。
(3).explode(separator,string,limit) 函数使用一个字符串分割另一个字符串,并返回由字符串组成的数组。separator规定在哪里分割字符串。"separator" 参数不能是一个空字符串。string要分割的字符串。limit(可选)规定所返回的数组元素的数目。
b、$ext = pathinfo($fileInfo['name'],PATHINFO_EXTENSION);
分析:pathinfo(path,options) 函数以数组或字符串的形式返回关于文件路径的信息。
path:必需。规定要检查的路径。
options:可选。规定要返回的数组元素。默认是 all。
PATHINFO_DIRNAME - 只返回 dirname
PATHINFO_BASENAME - 只返回 basename
PATHINFO_EXTENSION - 只返回 extension
来源地址:https://blog.csdn.net/sinat_30603081/article/details/131082189