时间:2021-07-01 10:21:17 帮助过:4人阅读
提交文件的页面:(可以分别提交到doAction.php、doAction1.php、doAction2.php进行测试)
upload.php
文件上传
doAction1.php
doAction2.php$maxSize) { exit('上传文件过大'); } echo $fileInfo['type']; exit; //$ext = strtolower(end(explode('.', $fileInfo['name']))); $ext = pathinfo($fileInfo['name'],PATHINFO_EXTENSION); if(!in_array($ext, $allowExt)) { exit('非法文件类型'); } //判断文件是否是通过HTTP POST方式上传来的 if(!is_uploaded_file($fileInfo['tmp_name'])) { exit('文件不是通过HTTP POST方式上传来的'); } //检测是否为真实的图片类型 /* * getimagesize($filename):得到指定图片的信息,如果是图片返回数组 * 如果不是图片(哪怕文件的后缀是图片的格式,实际上不是图片的话),返回false。 */ if($flag) { if(!getimagesize($fileInfo['tmp_name'])) { exit('不是真正的图片类型'); } } $path = 'uploads'; //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)) . '.' . $ext; //$destination = $path . '/' . $fileInfo['name']; $destination = $path . '/' . $uniName; if(@move_uploaded_file($fileInfo['tmp_name'], $destination)) { echo '文件上传成功'; } else { echo '文件上传失败'; } } else { //匹配错误信息 switch($fileInfo['error']) { case 1: echo '上传文件超过了PHP配置文件中upload_max_filesize选项的值'; break; case 2: echo '超过了表单MAX_FILE_SIZE限制的大小'; break; case 3: echo '文件部分被上传'; break; case 4: echo '没有选择上传文件'; break; case 6: echo '没有找到临时目录'; break; case 7: case 8: echo '系统错误'; break; } }
以上就介绍了PHP文件上传的实现及其介绍,包括了php文件,文件上传方面的内容,希望对PHP教程有兴趣的朋友有所帮助。