十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章主要介绍“PHP中upload.php的具体使用方法”,在日常操作中,相信很多人在PHP中upload.php的具体使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP中upload.php的具体使用方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
成都创新互联是创新、创意、研发型一体的综合型网站建设公司,自成立以来公司不断探索创新,始终坚持为客户提供满意周到的服务,在本地打下了良好的口碑,在过去的十多年时间我们累计服务了上千家以及全国政企客户,如成都混凝土泵车等企业单位,完善的项目管理流程,严格把控项目进度与质量监控加上过硬的技术实力获得客户的一致夸奖。
我们今天为大家带来的是关于PHP上传类upload.php 的具体用法,希望广大读者朋友能够通过本文所介绍的内容得到帮助,增加我们的知识点。
具体代码如下:
*/ class upload { /** * PHP上传类upload.php上传文件的信息,此值由构造函数取得,如果上传文件失败或出错或未上传,则此值为false * * @var array */ private $file = false; /** * 构造函数:取得上传文件的信息 * * 如果在上传文件的工程中发生错误,那么出错的文件不会放在结果中返回,结果中的文件都是可用的 * * @param string $tag form表单中标签中name属性的值,例 * * 例1,上传单个文件: * * * 例2,上传多个文件: * * * * 结果(保存在$file变量中)如下: * * array( * [0] => array( * 'name' => 'abc.txt' * 'type' => 'text/plain’ * 'tmp_name' => '/tmp/phpgxecCb' * 'error' => 0 * 'size' => 62 * ) * [1] => array( * 'name' => 'abc.txt' * 'type' => 'text/plain’ * 'tmp_name' => '/tmp/phpgxecCb' * 'error' => 0 * 'size' => 62 * ) * ) */ public function __construct($tag) { $file = $_FILES[$tag]; if (!isset($file) || empty($file)) { return; //没有上传文件 } $num = count($file['name']); //PHP上传类upload.php上传文件的个数 $data = array(); //用来保存上传文件的信息的数组 //上传了多个文件 if ($num > 1) { for($i = 0; $i < $num; $i++) { $d = array(); $d['name'] = $file['name'][$i]; $d['type'] = $file['type'][$i]; $d['tmp_name'] = $file['tmp_name'][$i]; $d['error'] = $file['error'][$i]; $d['size'] = $file['size'][$i]; if ($d['error'] == 0) { $data[] = $d; } else { @unlink($d['tmp_name']); } } } //只上传了一个文件 else { $d = array(); $d['name'] = $file['name']; $d['type'] = $file['type']; $d['tmp_name'] = $file['tmp_name']; $d['error'] = $file['error']; $d['size'] = $file['size']; if ($d['error'] == 0) { $data[] = $d; } else { @unlink($d['tmp_name']); } } if (empty($data)) return; $this -> file = $data; //保存上传文件的信息 } /** * 将上传的文件从临时文件夹移动到目标路径 * * @param array $src 文件信息数组,是$file数组的其中一个元素(仍然是数组) * @param string $destpath 上传的目标路径 * @param string $filename 上传后的文件名,如果为空,则使用上传时的文件名 * @return bool */ public function save($src, $destpath, $filename = null) { $srcTName = $src['tmp_name']; //原始上传文件的临时文件名 $srcFName = $src['name']; //原始文件名 //如果$filename参数为空,则使用上传时的文件名 if (empty($filename)) { $filename = $srcFName; } //$dest是文件最终要复制到的路径和文件名 if (empty($destpath)) { $dest = $filename; } else { //修正路径中的斜杠,将末尾的\修改为/,如果末尾不是\也不是/,则给末尾添加一个/ $pathend = $destpath[strlen($destpath) - 1]; //上传的目标路径的***一个字符 if ($pathend == '\\') { $dest = substr_replace($destpath, '/', strlen($destpath)-1).$filename; } else if ($pathend != '/') { $dest = $destpath.'/'.$filename; } else { $dest = $destpath.$filename; } } //上传文件成功 if (@move_uploaded_file($srcTName, $dest)) { return true; } else { return false; } } /** * 取得上传文件的信息 * * @return array */ public function getFileInfo() { return $this->file; } } $a = new upload('upfile'); $fileinfo = $a -> getFileInfo(); if ($fileinfo == false) { echo '没有上传文件!'; exit; } for($i = 0; $i < count($fileinfo); $i++) { echo '正在上传 '.$fileinfo[$i]['name'].' '; if ($a -> save($fileinfo[$i], 'upload')) echo '完毕'; else echo '失败'; echo '
'; } ?>
到此,关于“PHP中upload.php的具体使用方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!