php处理上传文件

公司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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值