解析PHP中$_FILES的使用以及注意事项_php技巧

$_FILES数组内容如下:
$_FILES['myFile']['name'] 客户端文件的原名称。
$_FILES['myFile']['type'] 文件的 MIME 类型,需要浏览器提供该信息的支持,例如"image/gif"。
$_FILES['myFile']['size'] 已上传文件的大小,单位为字节。
$_FILES['myFile']['tmp_name'] 文件被上传后在服务端储存的临时文件名,一般是系统默认。可以在php.ini的upload_tmp_dir 指定,但用 putenv() 函数设置是不起作用的。
$_FILES['myFile']['error'] 和该文件上传相关的错误代码。['error'] 是在 PHP 4.2.0 版本中增加的。

下面是它的说明:(它们在PHP3.0以后成了常量)
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; 没有文件被上传。 值:5; 上传文件大小为0.

注:
1. 文件被上传结束后,默认地被存储在了临时目录中,这时必须将它从临时目录中删除或移动到其它地方,如果没有,则会被删除。也就是不管是否上传成功,脚本执行完后临时目录里的文件肯定会被删除。所以在删除之前要用PHP的 copy() 函数将它复制到其它位置,此时,才算完成了上传文件过程。

2. 在 PHP 4.1.0 版本以前该数组的名称为 $HTTP_POST_FILES,它并不像 $_FILES 一样是自动全局变量。PHP 3 不支持 $HTTP_POST_FILES 数组。

3. 用form上传文件时,一定要加上属性内容 enctype="multipart/form-data",否则用$_FILES[filename]获取文件信息时会报异常。
<form enctype="multipart/form-data" action="URL" method="post">
<input name="myFile" type="file">
<input type="submit" value="上传文件">
</form>

时间: 2024-08-07 10:23:53

解析PHP中$_FILES的使用以及注意事项_php技巧的相关文章

php简单解析mysqli查询结果的方法(2种方法)_php技巧

本文实例讲述了php简单解析mysqli查询结果的方法.分享给大家供大家参考,具体如下: 可将查询结果放入对象或数组中: 1. 将查询结果放入对象: $sql="select name,brief from cars"; $result=mysqli->query($sql); while($row=$result->fetch_object()) { echo $row->name; echo $row->brief; } 2. 放入数组: $sql=&quo

解析Extjs与php数据交互(增删查改)_php技巧

复制代码 代码如下: <html><head>//搜索暂时没做,数据是出来了,但是却没法显示<link rel="stylesheet" type="text/css" href="./js/resources/css/ext-all.css"/><script type="text/javascript" src="./js/jquery.js"></

解析PHP中如何将数组变量写入文件_php技巧

在用PHP记录日志,或者是 Ajax 请求出错想要 debug 的时候.我们一般都会将信息写入到一个指定的文件当中.然后根据相应的信息来处理问题.比如笔者最喜欢在用 Ajax 取不到数据的时候,在PHP脚本里面加上下面一段代码 复制代码 代码如下: $fp = fopen('./a.txt', 'a+b'); fwrite($fp, $content); fclose($fp); 但是,这里有一个问题.那就是 $content 是一个数组怎么办?你可能会说,我循环输出.那要是多维数组呢?我只是为

PHP上传文件时文件过大$_FILES为空的解决方法_php技巧

在做图片上传的时候突然发现一张gif图片上传失败 size为0,实际大小为4.66M.上传小文件时可以,传大文件就不行,看了下PHP.INI里面upload_max_filesize = 2M, 问题就出在这了,修改其值 复制代码 代码如下: ; Maximum allowed size for uploaded files. upload_max_filesize = 20M 重启了下nginx问题解决.

深入解析PHP的Yii框架中的缓存功能_php技巧

数据缓存是指将一些 PHP 变量存储到缓存中,使用时再从缓存中取回.它也是更高级缓存特性的基础,例如查询缓存和内容缓存. 如下代码是一个典型的数据缓存使用模式.其中 $cache 指向缓存组件: // 尝试从缓存中取回 $data $data = $cache->get($key); if ($data === false) { // $data 在缓存中没有找到,则重新计算它的值 // 将 $data 存放到缓存供下次使用 $cache->set($key, $data); } // 这儿

解析php安全性问题中的:Null 字符问题_php技巧

由于 PHP 的文件系统操作是基于 C 语言的函数的,所以它可能会以您意想不到的方式处理 Null 字符. Null字符在 C 语言中用于标识字符串结束,一个完整的字符串是从其开头到遇见 Null 字符为止. 以下代码演示了类似的攻击:Example #1 会被 Null 字符问题攻击的代码 复制代码 代码如下: <?php$file = $_GET['file']; // "../../etc/passwd\0"if (file_exists('/home/wwwrun/'.$

解析php curl_setopt 函数的相关应用及介绍_php技巧

一.要想使用curl_setopt 这个函数必须在服务器里边进行编译curl这个组件,怎么安装编译这个组件请具体到google搜索二.curl_setopt的php帮助文档的解释bool curl_setopt (int ch, string option, mixed value)curl_setopt()函数将为一个CURL会话设置选项.option参数是你想要的设置,value是这个选项给定的值.下列选项的值将被作为长整形使用(在option参数中指定): CURLOPT_INFILESI

解析smarty模板中类似for的功能实现_php技巧

1. 功能说明,在页面使用smarty循环100次输出,类似for循环100次{section name=total loop=100}{$smarty.section.total.index+1} //当前的索引{$smarty.section.total.iteration} //用于显示循环的次数{/section} {assign var=i value=0}{section name=total loop=100}{assign var=i value=$i+1} {$i}     /

解析:使用php mongodb扩展时 需要注意的事项_php技巧

最近在使用php的mongo 扩展进行数据统计计算,其中有一个时间戳字段,由于精确到了毫秒,长度有13位,但由于开始的时候是以字符串的形式存储: 复制代码 代码如下: { "_id" : ObjectId("504eea97e4b023cf38e34039"), "in_ts" : NumberLong("1347349143699"), "log" : { "guid" : "