thinkphp文件上传后怎么删除

 我来答
龙氏风采
2017-01-14 · 知道合伙人互联网行家
龙氏风采
知道合伙人互联网行家
采纳数:5849 获赞数:12817
从事互联网运营推广,5年以上互联网运营推广经验,丰富的实战经

向TA提问 私信TA
展开全部

  ThinkPHP上传文件及删除文件方法如下:

  一、准备工作

  1.注册账号

  2.选择对象储存->创建空间->设置为公开

  3.在config配置文件中添加以下代码

'UPLOAD_FILE_QINIU'     => array (
  'maxSize'           => 5 * 1024 * 1024,//文件大小
  'rootPath'          => './根目录/',
  'savePath'          => '子目录',// 文件上传的保存路径
  'saveName'          => array ('uniqid', ''),
  'exts'              => ['zip', 'rar', 'txt', 'doc', 'docx', 'xlsx', 'xls', 'pptx', 'pdf', 'chf'],  //

设置附件上传类型  '

driver'            => 'Qiniu',
  'driverConfig'      => array (
  'secretKey'        => '<这里填七SK>',
  'accessKey'        => '<这里填七AK>',
  'domain'           => '<这里填七提供的域名>',
  'bucket'           => '<空间名称>',
  )
  ),

  二、利用thinkPHP上传文件

  1.新建upload控制器->uploadFile方法 

 public function uploadTicketFile()
  {
  $setting = C('UPLOAD_FILE_QINIU');
  $Upload = new \Think\Upload($setting);
  $info = $Upload->upload($_FILES);
  $path = str_replace('/','_',$info['file']['savepath']);
  $filename = $path.$info['file']['savename'];//保存的文件名称
  if(!$info)
  {
  $data = ['status'=>0,'msg'=>'上传失败,'.$Upload->getError()];
  }
  else
  {
  $data = [
  'status'=>1,
  'msg'   => '上传成功',
  'name'  => $_FILES['file']['name'],
  'size'  => $_FILES['file']['size'],
  'cname' => $filename,
  'type'  => $info['file']['ext'],
  'link'  => $info['file']['url'],
  ];
  }
  echo json_encode($data);
  exit;
  }

  三.利用thinkPHP删除上传的文件

  1.upload控制器->新建delFile方法

 public function delFile()
  {        $setting = C('UPLOAD_FILE_QINIU');
  $file_name = I('post.file_name');//要删除的文件名称
  $Qiniu = new Think\Upload\Driver\Qiniu\QiniuStorage($setting['driverConfig']);
  $result = $Qiniu->del($file_name);
  $error = $Qiniu->errorStr;//错误信息
  if(is_array($result) && !($error))
  {
  $data = ['status'=>1,'msg'=>'删除文件成功'];
  }
  else
  {
  $data = ['status'=>0,'msg'=>'删除文件失败,'.$error];
  }
  echo json_encode($data);
  exit;
  }
Spring_Hgui
2016-10-11 · 超过24用户采纳过TA的回答
知道答主
回答量:85
采纳率:50%
帮助的人:23万
展开全部

删除服务器端的文件,直接使用php原生的unlike()函数即可

unlink(filename,context);

若成功,则返回 true,失败则返回 false。

栗子:

<?php
$file = "test.txt";
if (!unlink($file))
  {
  echo ("Error deleting $file");
  }
else
  {
  echo ("Deleted $file");
  }
?>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
农谷槐q3
2016-12-27 · TA获得超过291个赞
知道小有建树答主
回答量:418
采纳率:66%
帮助的人:175万
展开全部
unlink() 函数用于删除文件。若成功,则返回 true,失败则返回 false。rmdir() 函数用于删除空的目录。它尝试删除 dir 所指定的目录。 该目录必须是空的,而且要有相应的权限。
一个实例:删除某个文件夹下的所有”.svn”文件夹(包括其内容也要被删除)。
<?php
function delsvn($dir) {
$dh=opendir($dir);
//找出所有".svn" 的文件夹:
while ($file=readdir($dh)) {
if($file!="." && $file!="..") {
$fullpath=$dir."/".$file;
if(is_dir($fullpath)) {
if($file==".svn"){
delsvndir($fullpath);
}else{
delsvn($fullpath);
}
}
}
}

closedir($dh);
}
function delsvndir($svndir){
//先删除目录下的文件:
$dh=opendir($svndir);
while($file=readdir($dh)){
if($file!="."&&$file!=".."){
$fullpath=$svndir."/".$file;
if(is_dir($fullpath)){
delsvndir($fullpath);
}else{
unlink($fullpath);
}
}

}
closedir($dh);
//删除目录文件夹
if(rmdir($svndir)){
return true;
}else{
return false;
}

}
$dir=dirname(__FILE__);
//echo $dir;
delsvn($dir);
?>

可以参考下php中文网的实例教程,希望能对你有帮助。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沧海一声笑傲江湖
2016-06-25
知道答主
回答量:45
采纳率:0%
帮助的人:9.1万
展开全部
// 删除单个文件
    unlink($file);
// 清空指定文件夹,不删除目录
    function deldir($dir) {
      $dh=opendir($dir);
          while ($file=readdir($dh)) {
            if($file!="." && $file!="..") {
              $fullpath=$dir."/".$file;
              if(!is_dir($fullpath)) {
                  unlink($fullpath);
              } else {
                  deldir($fullpath);
              }
            }
          }
    }
// 递归删除目录
function deldir($path){
       //判断是否是正确目录
        if(is_dir($path)){
            //打开目录
            $ph=opendir($path);

            //循环读取目录结构
            while (false !== ($d = readdir($ph))) {
               // echo $d."<br>";
                if($d=='.'||$d=='..'){
                    continue;
                }
                //拼接要删除的路径
                $tmp=$path."/".$d;
                //如果是文件就删除
                if(!is_dir($tmp)){
                    unlink($tmp);
                }else{
                    $this->deldir($tmp);
                }
            }

            //关闭目录
            closedir($ph);
            //删除空目录
            rmdir($path);
            return true;
        }else{
            // 您所访问的目录不存在
            return false;
        }
    }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
凌风觅蕊
2016-07-05
知道答主
回答量:16
采纳率:0%
帮助的人:1.7万
展开全部
$filename = $file['savepath'].$file['savename'];
..................
................
............
if($this->thumbRemoveOrigin) {
// 生成缩略图之后删除原图
unlink($filename);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式