作者:初吻给了烟200309 | 来源:互联网 | 2017-05-13 02:18
php文件,文件上传:PHP文件上传的实现及其介绍:关于实现及介绍在程序注释中。提交文件的页面:(可以分别提交到doAction.php、doAction1.php、doAction2.php进行测试)upload.php文件上传<formactiondoActi
关于实现及介绍在程序注释中。提交文件的页面:(可以分别提交到doAction.php、doAction1.php、doAction2.php进行测试)
upload.php
请选择您要上传的文件:
doAction.php
doAction1.php
doAction2.php $maxSize) {
exit(&#39;上传文件过大&#39;);
}
echo $fileInfo[&#39;type&#39;]; exit;
//$ext = strtolower(end(explode(&#39;.&#39;, $fileInfo[&#39;name&#39;])));
$ext = pathinfo($fileInfo[&#39;name&#39;],PATHINFO_EXTENSION);
if(!in_array($ext, $allowExt)) {
exit(&#39;非法文件类型&#39;);
}
//判断文件是否是通过HTTP POST方式上传来的
if(!is_uploaded_file($fileInfo[&#39;tmp_name&#39;])) {
exit(&#39;文件不是通过HTTP POST方式上传来的&#39;);
}
//检测是否为真实的图片类型
/*
* getimagesize($filename):得到指定图片的信息,如果是图片返回数组
* 如果不是图片(哪怕文件的后缀是图片的格式,实际上不是图片的话),返回false。
*/
if($flag) {
if(!getimagesize($fileInfo[&#39;tmp_name&#39;])) {
exit(&#39;不是真正的图片类型&#39;);
}
}
$path = &#39;uploads&#39;;
//php利用mkdir创建多级目录 http://www.daixiaorui.com/read/38.html
/*
* mkdir($path,0777,true);
* 第一个参数:必须,代表要创建的多级目录的路径;
* 第二个参数:设定目录的权限,默认是 0777,意味着最大可能的访问权;
* 第三个参数:true表示允许创建多级目录。
*/
/*
* chmod() 函数改变文件模式。
* 如果成功则返回 TRUE,否则返回 FALSE。
*/
if(!file_exists($path)) {
mkdir($path, 0777, true); // 0777表示可读可写可执行
chmod($path, 0777);
}
//确保文件名位移,放置重名产生覆盖
/*
* uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID。
* 语法
* uniqid(prefix,more_entropy)
* 参数 描述
* prefix 可选。为 ID 规定前缀。如果两个脚本恰好在相同的微秒生成 ID,该参数很有用。
* more_entropy 可选。规定位于返回值末尾的更多的熵。
*/
/*
* microtime()返回当前 Unix 时间戳和微秒数。
* PHP函数microtime()语法
* microtime(get_as_float)
* PHP函数microtime()参数与描述
* get_as_float 如果给出了 get_as_float 参数并且其值等价于 TRUE,该函数将返回一个浮点数。
* 通俗地说,带参数true表明只返回一个浮点数(即秒数),不带参数返回一个微秒+秒的字符串。
* ";
* echo microtime(true);
* ?>
* 结果如下:
* 0.00000600 1283757623
* 1283757623
*/
$uniName = md5(uniqid(microtime(true), true)) . &#39;.&#39; . $ext;
//$destination = $path . &#39;/&#39; . $fileInfo[&#39;name&#39;];
$destination = $path . &#39;/&#39; . $uniName;
if(@move_uploaded_file($fileInfo[&#39;tmp_name&#39;], $destination)) {
echo &#39;文件上传成功&#39;;
} else {
echo &#39;文件上传失败&#39;;
}
} else {
//匹配错误信息
switch($fileInfo[&#39;error&#39;]) {
case 1:
echo &#39;上传文件超过了PHP配置文件中upload_max_filesize选项的值&#39;;
break;
case 2:
echo &#39;超过了表单MAX_FILE_SIZE限制的大小&#39;;
break;
case 3:
echo &#39;文件部分被上传&#39;;
break;
case 4:
echo &#39;没有选择上传文件&#39;;
break;
case 6:
echo &#39;没有找到临时目录&#39;;
break;
case 7:
case 8:
echo &#39;系统错误&#39;;
break;
}
}
以上就介绍了PHP文件上传的实现及其介绍,包括了php文件,文件上传方面的内容,希望对PHP教程有兴趣的朋友有所帮助。