越简单越好!

PHP文件上传实现的注意点

发表于 2007-03-07 16:21 | 1247次阅读 0次点赞   PHP
假设该界面中的文件域name为userfile,我们可以通过浏览打开一个文件选择窗口,完成选择后,文本框中会显示被现实文件在本地机器上的完整路径。当按下上传后,文件会被传送到服务器的临时目录上,并且被重命名为php?.tmp,其中的问号是一个随机编号。

html代码如下:

<form action="upload.php" method="post" enctype="multipart/form-data" name="form1" >

<input type="hidden" name="MAX_FILE_SIZE" value="30000">  

<input name="userfile" type="file" >

<input type="submit" name="Submit" value="上传">  

</form> 

在传送到另一个文件upload.php后,可以通过以下一些变量访问与该文件相关的信息
$userfile_name         上传文档名称
$userfile_tmp_name      上传文档保存到的临时名称
$userfile_size          上传文档大小,单位bytes
$userfile_type          上传文档的mime类型

以上这些变量在windows+apache环境下一切正常,但是如果在linux下出现无法访问的情况,可以使用以下变量
$_FILES['userfile']['name']

客户端机器文件的原名称。

$_FILES['userfile']['type']

文件的 MIME 类型,如果浏览器提供此信息的话。一个例子是“image/gif”。不过此 MIME 类型在 PHP 端并不检查,因此不要想当然认为有这个值。

$_FILES['userfile']['size']

已上传文件的大小,单位为字节。

$_FILES['userfile']['tmp_name']

文件被上传后在服务端储存的临时文件名。

$_FILES['userfile']['error']

和该文件上传相关的错误代码.

从 PHP 4.2.0 开始,PHP 将随文件信息数组一起返回一个对应的错误代码。该代码可以在文件上传时生成的文件数组中的error字段中被找到,也就是$_FILES['userfile']['error']。

UPLOAD_ERR_OK

其值为 0,没有错误发生,文件上传成功。

UPLOAD_ERR_INI_SIZE

其值为 1,上传的文件超过了php.ini中 upload_max_filesize 选项限制的值。

UPLOAD_ERR_FORM_SIZE

其值为 2,上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。

UPLOAD_ERR_PARTIAL

其值为 3,文件只有部分被上传。

UPLOAD_ERR_NO_FILE

其值为 4,没有文件被上传。

UPLOAD_ERR_NO_TMP_DIR

其值为 6,找不到临时文件夹。PHP 4.3.10 和 PHP 5.0.3 引进。

UPLOAD_ERR_CANT_WRITE

其值为 7,文件写入失败。PHP 5.1.0 引进。

注: 以上值在 PHP 4.3.0 之后变成了 PHP 常量。

返回顶部 ^