php上传基础知识总结
1.文件上传 1》文件上传的原理:将客户端上的文件通过浏览器上传到服务器上, 在将服务器上的文件移动到指定目录。 2》客户端的配置 表单页面,浏览框 method=‘post‘ enctype=‘multipart/form-data‘ 3》服务器端配置 $_FILES:接受上传文件信息 $_FILES[‘浏览框名称‘][‘name‘]->上传文件的名称 $_FILES[‘浏览框名称‘][‘type‘]->上传文件的MIME类型 $_FILES[‘浏览框名称‘][‘tmp_name‘]->服务器端临时文件名称 $_FILES[‘浏览框名称‘][‘size‘]->上传文件的大小,单位是字节 $_FILES[‘浏览框名称‘][‘error‘]->上传文件的错误号 上传文件的错误号: 0 或者UPLOAD_ERR_OK:代表没有错误,证明客户端上的文件发送到了服务器端 1或者UPLOAD_ERR_INI_SIZE:超过了PHP配置文件允许上传的文件的最大大小,upload_max_filesize=选项的值 2或者UPLOAD_ERR_FORM_SIZE:超过了表单中限制上传文件的最大大小,超过了MAX_FILE_SIZE选项的值 3或者UPLOAD_ERR_PARTIAL:文件部分被上传 4或者UPLOAD_ERR_NO_FILE:没有选择上传文件 6或者UPLOAD_ERR_NO_TMP_DIR:没有找到临时目录 7或者UPLOAD_ERR_CANT_WRITE:目录不能写 8或者UPLOAD_ERR_EXTENSION:由于PHP扩展程序中断了文件上传 和文件上传有关的配置信息: file_uploads = On,是否支持通过HTTP形式上传文件 upload_tmp_dir =上传文件的临时目录 upload_max_filesize = 2M,设置上传文件的最大大小 post_max_size = 8M,设置表单以POST形式发送数据的最大值 max_file_uploads = 20,一次最多可以上传多少个文件 $_FILES是空数组,上传文件为Array()数组的情况,没有接到上传文件信息的可能: 1》表单中method 和enctype 2》file_uploads是否开启 bool move_uploaded_file($tmp_name,$destination):将服务器端的临时文件移动指定目录下, 叫什么名字;移动成功,返回true,失败false 3》上传文件限制 客户端限制 限制上传文件大小 <input type=‘hidden‘ name=‘MAX_FILE_SIZE‘ value=‘文件大小,单位字节‘/> 限制上传文件类型 <input type=‘file‘ name=‘myFile‘ accept=‘上传文件的MIME类型,多个类型之间以,分隔‘/> 常用的文件的MIME类型 扩展名 MIME类型 jpg/jpeg image/jpeg gif image/gif png image/png html text/html txt text/plain pdf application/pdf 在客户端上做的限制,可以绕过 服务器端限制 限制上传文件的大小 限制上传文件的类型 限制是否是通过HTTP POST方式上传的 检测是否是真实图片 //1.接收信息 //2.判断错误号(有错误的话匹配错误) //3.检测上传文件的大小 //4.检测上传文件的类型 //5.检测文件是否通过HTTP POST方式上传上来的 //6.最后移动文件
时间: 2024-12-28 11:18:56