您的位置:首页 > 编程语言 > PHP开发

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: