行健网络

?找回密码
?立即注册
查看: 2695|回复: 0
打印 上一主题 下一主题

利用表单上传文件的具体操作详情

[复制链接]
跳转到指定楼层
楼主
发表于 2014-8-12 16:35:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

其具体过程是:当提交表单后,会自动将文件发送到服务器,并保存在服务器系统临时文件夹当中,然后可以利用PHP脚本将该临时文件移动到所需要的文件夹当中。


在PHP脚本中有一个全局变量$_FILES,它保存的就是通过HTTP POST方式上传到当前脚本的文件。在PHP4.1.0之前是使用变量$HTTP_POST_FILES保存相同的信息,但它不是一个全局变量,所以处理方式自然也就不同。自PHP4.1.0及之后该变量被废弃。

$_FILES它是一个二维数组,保存是与该文件相关的信息,假设myfile是类型为file的input字段的名称,那么该$_FILES变量各键名的意义如下:

1、$_FIELS[myfile][name]:文件的源名称

2、$_FIELS[myfile][type]:文件的MIME类型,必须浏览器提供此信息,也就是在HTTP头域中提供此信息,才会提取到该信息,PHP端并不检查。

3、$_FIELS[myfile][size]:已上传文件的大小

4、$_FIELS[myfile][tmp_name]:文件被上传之后在服务端的临时文件名

5、$_FIELS[myfile][error]:和该文件上传相关的错误代码。


从PHP 4.2.0开始在上传文件时会返回一个对应的错误的代码,该错误代码会被存放在$_FILES[文件名][error]当中,其错误信息值有:

1、 UPLOAD_ERR_OK:值为0,没有错误发生,文件夹上传成功;

2、 UPLOAD_ERR_INI_SIZE:值为1,上传文件的大小超过了php.ini中upload_max_filesize选项规定的值;

3、 UPLOAD_ERR_FORM_SIZE:值为2,上传文件的大小超过了表单MAX_FILE_SIZE选项规定的值;

4、 UPLOAD_ERR_PARTIAL:值为3,文件只被上传了一部分;

5、 UPLOAD_ERR_NO_FILE:值为4,没有文件被上传;

6、 UPLOAD_ERR_NO_TMP_DIR:值为6,找不临时文件夹;

7、 UPLOAD_ERR_CANT_WRITE:值为7,文件写入失败。



与文件上传相关的php.ini中的配置选项:

? ?名字
? ?
? ?默认
? ?
? ?更新日志
? ?
??file_uploads
??
??"1"
??
??在 PHP <= 4.2.3 时是 PHP_INI_ALL。 从 PHP 4.0.3 起可用。
??
??upload_tmp_dir
??
??NULL
??
? ?
??
??max_input_nesting_level
??
??64
??
??从 PHP 5.3.9 起可用。
??
??max_input_vars
??
??1000
??
??从 PHP 5.3.9 起可用。
??
??upload_max_filesize
??
??"2M"
??
??在 PHP <= 4.2.3 时是 PHP_INI_ALL。
??
??max_file_uploads
??
??20
??
??从 PHP 5.2.12 起可用。
??

best365最快几天到账best365官方PHP通过move_uploaded_file(string$filename)函数,将上传之后保存在临时文件夹中文件移动到你所需要的文件当中,并且可以通过is_uploaded_file(string $filename)来判断存放在临时文件夹当中的文件是否是通过HTTP POST上传的。这可以用来确保恶意的用户无法欺骗脚本去访问本不能访问的文件


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|网站地图|行健网络

GMT+8, 2019-10-16 11:14 , Processed in 0.061517 second(s), 16 queries .

Powered by Discuz! X3.2

? 2001-2013 Comsenz Inc.

快速回复 返回顶部 best365最快几天到账