为了账号安全,请及时绑定邮箱和手机立即绑定
  • $_FILES中保存着上传文件的信息
    查看全部
  • 下载以中文命名的图片文件,打开不正常了!
    查看全部
    1 采集 收起 来源:PHP文件下载

    2015-06-17

  • <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Insert title here</title> </head> <body> <a href="1.rar">下载1.rar</a> <br /> <a href="1.jpg">下载1.jpg</a> <br /> <a href="doDownload.php?filename=1.jpg">通过程序下载1.jpg</a> <br /> <a href="doDownload.php?filename=../upload/nv.jpg">下载nv.jpg</a> </body> </html> <?php $filename=$_GET['filename']; header('content-disposition:attachment;filename='.basename($filename)); //header('content-disposition:attachment;filename=king_'.basename($filename)); //basename($filename) 只保留文件名,取消文件名的路径 header('content-length:'.filesize($filename)); readfile($filename); readfile() 函数输出一个文件。 该函数读入一个文件并写入到输出缓冲。 若成功,则返回从文件中读入的字节数。若失败,则返回 false
    查看全部
    0 采集 收起 来源:PHP文件下载

    2018-03-22

  • 一次可以选择多个文件 <form action="doAction5.php" method="post" enctype="multipart/form-data"> <input type="file" name='myFile[]' multiple="multiple" /><br/> <input type="submit" value="上传文件" /> </form>
    查看全部
    0 采集 收起 来源:调试和验证

    2018-03-22

  • <?php header('content-type:text/html;charset=utf-8'); require_once 'upload.class.php'; $upload=new upload('myFile1','imooc'); $dest=$upload->uploadFile(); echo $dest;
    查看全部
    0 采集 收起 来源:调试和验证

    2018-03-22

  • /** * 上传文件 * @return string */ public function uploadFile(){ if($this->checkError()&&$this->checkSize()&&$this->checkExt()&&$this->checkMime()&&$this->checkTrueImg()&&$this->checkHTTPPost()){ $this->checkUploadPath(); $this->uniName=$this->getUniName(); $this->destination=$this->uploadPath.'/'.$this->uniName.'.'.$this->ext; if(@move_uploaded_file($this->fileInfo['tmp_name'], $this->destination)){ return $this->destination; }else{ $this->error='文件移动失败'; $this->showError(); } }else{ $this->showError(); } } }
    查看全部
    0 采集 收起 来源:调试和验证

    2018-03-22

  • /** * 检测是否通过HTTP POST方式上传上来的 * @return boolean */ protected function checkHTTPPost(){ if(!is_uploaded_file($this->fileInfo['tmp_name'])){ $this->error='文件不是通过HTTP POST方式上传上来的'; return false; } return true; } /** *显示错误 */ protected function showError(){ exit('<span >'.$this->error.'</span>'); } /** * 检测目录不存在则创建 */ protected function checkUploadPath(){ if(!file_exists($this->uploadPath)){ mkdir($this->uploadPath,0777,true); } } /** * 产生唯一字符串 * @return string */ protected function getUniName(){ return md5(uniqid(microtime(true),true)); }
    查看全部
    0 采集 收起 来源:调试和验证

    2018-03-22

  • /** * 检测扩展名 * @return boolean */ protected function checkExt(){ $this->ext=strtolower(pathinfo($this->fileInfo['name'],PATHINFO_EXTENSION)); if(!in_array($this->ext,$this->allowExt)){ $this->error='不允许的扩展名'; return false; } return true; } /** * 检测文件的类型 * @return boolean */ protected function checkMime(){ if(!in_array($this->fileInfo['type'],$this->allowMime)){ $this->error='不允许的文件类型'; return false; } return true; } /** * 检测是否是真实图片 * @return boolean */ protected function checkTrueImg(){ if($this->imgFlag){ if(!@getimagesize($this->fileInfo['tmp_name'])){ $this->error='不是真实图片'; return false; } return true; } }
    查看全部
    0 采集 收起 来源:调试和验证

    2018-03-22

  • /** * 检测上传文件是否出错 * @return boolean */ protected function checkError(){ if(!is_null($this->fileInfo)){ if($this->fileInfo['error']>0){ switch($this->fileInfo['error']){ case 1: $this->error='超过了PHP配置文件中upload_max_filesize选项的值'; break; case 2: $this->error='超过了表单中MAX_FILE_SIZE设置的值'; break; case 3: $this->error='文件部分被上传'; break; case 4: $this->error='没有选择上传文件'; break; case 6: $this->error='没有找到临时目录'; break; case 7: $this->error='文件不可写'; break; case 8: $this->error='由于PHP的扩展程序中断文件上传'; break; } return false; }else{ return true; } }else{ $this->error='文件上传出错'; return false; } } /** * 检测上传文件的大小 * @return boolean */ protected function checkSize(){ if($this->fileInfo['size']>$this->maxSize){ $this->error='上传文件过大'; return false; } return true; }
    查看全部
    0 采集 收起 来源:调试和验证

    2018-03-22

  • <?php class upload{ protected $fileName; protected $maxSize; protected $allowMime; protected $allowExt; protected $uploadPath; protected $imgFlag; protected $fileInfo; protected $error; protected $ext; /** * @param string $fileName * @param string $uploadPath * @param string $imgFlag * @param number $maxSize * @param array $allowExt * @param array $allowMime */ public function __construct($fileName='myFile',$uploadPath='./uploads',$imgFlag=true,$maxSize=5242880,$allowExt=array('jpeg','jpg','png','gif'),$allowMime=array('image/jpeg','image/png','image/gif')){ $this->fileName=$fileName; $this->maxSize=$maxSize; $this->allowMime=$allowMime; $this->allowExt=$allowExt; $this->uploadPath=$uploadPath; $this->imgFlag=$imgFlag; $this->fileInfo=$_FILES[$this->fileName]; }
    查看全部
    0 采集 收起 来源:调试和验证

    2018-03-22

  • foreach($files as $fileInfo){ $res=uploadFile($fileInfo); echo $res['mes'],'<br/>'; $uploadFiles[]=$res['dest']; } $uploadFiles=array_values(array_filter($uploadFiles)); array_filter(array,function) 函数,用回调函数过滤数组中的元素,如果自定义过滤函数function返回true,则被操作的数组array的当前值就会被包含在返回的结果数组中,并将结果组成一个新的数组。如果原数组是一个关联数组,键名保持不变 此处array_filter($uploadFiles),function不填表示去除数组中的空值,并以数组形式返回 array_values() 函数返回一个包含给定数组中所有键值的数组,但不保留键名
    查看全部
  • is_uploaded_file() 函数判断指定的文件是否是通过 HTTP POST 上传的 注释:本函数的结果会被缓存。请使用 clearstatcache() 来清除缓存 建立文件夹并设置0777权限 if(!file_exists($path)){ mkdir($path,0777,true); chmod($path,0777); }
    查看全部
  • getimagesize() 函数,获取图片宽高 in_array() 函数,在数组中搜索给定的值 如果给定的值 value 存在于数组 array 中则返回 true。如果第三个参数设置为 true,函数只有在元素存在于数组中且数据类型与给定值相同时才返回 true 如果没有在数组中找到参数,函数返回 false 注释:如果 value 参数是字符串,且 type 参数设置为 true,则搜索区分大小写
    查看全部
  • pathinfo(path,options); path:必需。规定要检查的路径 options:可选。规定要返回的数组元素。默认是 all。 可能的值: PATHINFO_DIRNAME - 只返回 dirname PATHINFO_BASENAME - 只返回 basename PATHINFO_EXTENSION - 只返回 extension
    查看全部
  • <?php header('content-type:text/html;charset=utf-8'); $fileInfo=$_FILES['myFile']; $maxSize=2097152;//允许的最大值 $allowExt=array('jpeg','jpg','png','gif','wbmp'); $flag=true;//检测是否为真实图片类型 //1.判断错误号 if($fileInfo['error']==0){ //判断上传文件的大小 if($fileInfo['size']>$maxSize){ 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方式上传来的'); } //检测是否为真实的图片类型 if($flag){ if(!getimagesize($fileInfo['tmp_name'])){ exit('不是真正图片类型'); } } $path='uploads'; if(!file_exists($path)){ mkdir($path,0777,true); chmod($path,0777); } //确保文件名唯一,防止重名产生覆盖 $uniName=md5(uniqid(microtime(true),true)).'.'.$ext; //echo $uniName;exit; $destination=$path.'/'.$uniName; if(@move_uploaded_file($fileInfo['tmp_name'],$destination)){ echo '上传成功'; }else{ echo '上传失败'; } }else{
    查看全部

举报

0/150
提交
取消
课程须知
要想更好的掌握本课程的核心知识点,最好能对PHP的基础语法有一定的理解,尤其是循环、数组和面向对象这三大部分,这将更有助于你对本门课程的理解和掌握。
老师告诉你能学到什么?
1、单文件上传的原理与配置 2、多文件上传的处理方法 3、文件下载的代码实现

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!