php处理上传文件
2009-11-20 13:52
375 查看
公司MM时常给我一些号码,然我查询是哪家的,都是txt文本格式的,还好号码是一行一个,于是用file()函数取个数组,开始的时候我的win7 32位的可以用apache后来装64位win7由于没找到原生的64位apache于是就传到服务器上每次,有上传有该文件很麻烦,于是做成一个页面去让MM自己完成.废话不多说
要在form表单里上传文件就得需要在表单信息里加上enctype信息:enctype="multipart/form-data" 还有file格式的表单元素
在php.ini有几个和上传文件相关的设置觉得有必要讲下
upload_tmp_dir //临时存放上传文件的目录,默认为空
upload_max_filesize //上传文件最大尺寸 默认为2M
file_uploads //是否允许上传文件,默认为On
max_input_time //一个POST请求的执行的最大时间,单位为秒,默认60
post_max_size //一个POST请求最大的数据量,这个数值必须大于upload_max_filesize 默认为8M
用$_FILES['data']接受文件及信息其中
['name'] => 文件名,在客户端的文件名
['type'] => 文件MIME类型。如image/jpeg, text/plain, application/octet-stream等。
['tmp_name'] => 如果文件小于允许上传文件大小,则该位置表示上传的文件临时存放路径及临时文件名,被放在upload_tmp_dir所指定的位置。
['size'] => 文件大小
['error'] => 错误代码
其中error错误代码可能的值如下表:
0 UPLOAD_ERR_OK 文件成功上传
1 UPLOAD_ERR_INI_SIZE 文件大小比php.ini中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 在php.ini中没有指定临时文件夹
只有当$_FILES['filename']['error']的值为0时,才应该继续处理文件。
安全性考虑,应该使用move_upload_file函数来完成移动上传文件的操作,最好用$_FILES['data']['type']来判断文件类型.
关于is_uploade_file()函数,我没试过,有网友研究过,摘来如下:
is_uploaded_file()的返回值
手册上面不很详细地说,用法是:
bool is_uploaded_file( string filename)
实际上
is_uploaded_file($_FILES['userfile']['name']);
总是返回FALSE。后来看见别人是用:
is_uploaded_file($_FILES['userfile']['tmp_name']);
比较一下:
file域无输入——————返回FALSE——error=>4,name=>'', tmp_name=>'', type=>'', size=>0
file域为非路径字符串——返回 TRUE——error=>0,name=>'xxx',tmp_name=>'yyy',type=>'zzz',size=>0
文件上传成功——————返回 TRUE——error=>0,name=>'xxx',tmp_name=>'yyy',type=>'zzz',size=>sss
文件太大————————返回FALSE——error=>1,name=>'xxx',tmp_name=>'', type=>'', size=>0
文件太大————————返回FALSE——error=>2,name=>'xxx',tmp_name=>'', type=>'', size=>0
文件部分上传——————没机会试验 —error=>3
有点怀疑这个函数是怎么工作的,还是觉得用$_FILES['userfile']['size']检验好些。
文章来自:老李的日志。源地址:http://www.dayanmei.com/blog.php/ID_876.htm
要在form表单里上传文件就得需要在表单信息里加上enctype信息:enctype="multipart/form-data" 还有file格式的表单元素
在php.ini有几个和上传文件相关的设置觉得有必要讲下
upload_tmp_dir //临时存放上传文件的目录,默认为空
upload_max_filesize //上传文件最大尺寸 默认为2M
file_uploads //是否允许上传文件,默认为On
max_input_time //一个POST请求的执行的最大时间,单位为秒,默认60
post_max_size //一个POST请求最大的数据量,这个数值必须大于upload_max_filesize 默认为8M
用$_FILES['data']接受文件及信息其中
['name'] => 文件名,在客户端的文件名
['type'] => 文件MIME类型。如image/jpeg, text/plain, application/octet-stream等。
['tmp_name'] => 如果文件小于允许上传文件大小,则该位置表示上传的文件临时存放路径及临时文件名,被放在upload_tmp_dir所指定的位置。
['size'] => 文件大小
['error'] => 错误代码
其中error错误代码可能的值如下表:
0 UPLOAD_ERR_OK 文件成功上传
1 UPLOAD_ERR_INI_SIZE 文件大小比php.ini中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 在php.ini中没有指定临时文件夹
只有当$_FILES['filename']['error']的值为0时,才应该继续处理文件。
安全性考虑,应该使用move_upload_file函数来完成移动上传文件的操作,最好用$_FILES['data']['type']来判断文件类型.
关于is_uploade_file()函数,我没试过,有网友研究过,摘来如下:
is_uploaded_file()的返回值
手册上面不很详细地说,用法是:
bool is_uploaded_file( string filename)
实际上
is_uploaded_file($_FILES['userfile']['name']);
总是返回FALSE。后来看见别人是用:
is_uploaded_file($_FILES['userfile']['tmp_name']);
比较一下:
file域无输入——————返回FALSE——error=>4,name=>'', tmp_name=>'', type=>'', size=>0
file域为非路径字符串——返回 TRUE——error=>0,name=>'xxx',tmp_name=>'yyy',type=>'zzz',size=>0
文件上传成功——————返回 TRUE——error=>0,name=>'xxx',tmp_name=>'yyy',type=>'zzz',size=>sss
文件太大————————返回FALSE——error=>1,name=>'xxx',tmp_name=>'', type=>'', size=>0
文件太大————————返回FALSE——error=>2,name=>'xxx',tmp_name=>'', type=>'', size=>0
文件部分上传——————没机会试验 —error=>3
有点怀疑这个函数是怎么工作的,还是觉得用$_FILES['userfile']['size']检验好些。
文章来自:老李的日志。源地址:http://www.dayanmei.com/blog.php/ID_876.htm
相关文章推荐
- 用php和imagemagick来处理图片文件的上传和缩放处理(转贴)
- PHP文件处理与文件上传
- 解读PHP中上传文件的处理问题
- php文件上传后端处理小技巧
- php上传文件处理
- PHP 上传文件报错处理
- PHP 简单处理--文件下载--文件上传
- PHP文件上传处理
- iframe实现无刷新上传文件并在当前页面返回数据php处理方式
- Html上传文件php处理上传文件
- PHP 文件上传后台处理脚本
- PHP从零单排(四)PHP中的文件上传处理 分类: PHP 2014-04-21 11:13 191人阅读 评论(0) 收藏
- PHP之文件系统处理_文件上传处理
- PHP学习文件处理与文件上传 课件第1/2页
- [总结 学习] 用php处理文件上传
- php 常用文件处理函数 与 文件上传
- 谈谈php中上传文件的处理
- php处理单文件、多文件上传代码分享
- 53 PHP文件处理(六)文件上传--总结---细说php
- PHP文件上传处理案例分析