【问题标题】:Cannot unlink file in Codeigniter无法在 Codeigniter 中取消链接文件
【发布时间】:2014-04-02 06:49:23
【问题描述】:

在我的项目中,我在根目录中有一个 secure 文件夹。项目包长这样:

application 
secure
system 
...........

在安全文件夹中,我正在使用表单提交上传一些图片

$config1['upload_path'] = './secure/';
$ext = end(explode(".", $_FILES['thumb_image']['name']));
$config1['file_name'] = time().$_FILES['thumb_image']['name'];
$config1['allowed_types'] = 'jpg|png|jpeg|gif|bmp|jpe|tiff|tif';
$this->load->library('upload', $config1);
$this->upload->initialize($config1);
$this->upload->do_upload('thumb_image');

并且它工作正常。现在,在使用另一种表单编辑详细信息时,如果我要上传新图像而不是当前图像文件,我想取消当前图像的链接,然后上传新文件。

为此,我正在使用代码:

unlink(base_url("secure/".$data['row']->videothumbnail));

我也试过

unlink('/secure/'.$data['row']->videothumbnail);

其中$data['row']->videothumbnail) 是数据库中的当前图像文件。新文件已成功上传。但是旧文件没有被取消链接。我已将安全文件夹的权限设置为777。但是图片是用只读权限上传的。是不是因为这个,才没有解绑?

谁能帮我解决这个问题?

提前致谢。

【问题讨论】:

  • 谢谢我错过了。在 /secure 之前。
  • 您可以尝试在上传后对文件执行 chmod 以更改权限
  • 如果目录路径错误然后unlink函数显示警告,你能显示警告吗??
  • 它现在正在工作..问题是我错过了。在 /secure/ 路径之前..
  • 你可以看看这个网址stackoverflow.com/questions/12320589/…

标签: php codeigniter file-upload unlink


【解决方案1】:

试试这个:

使用动态设置权限:

@chmod('./secure/'.$data['row']->videothumbnail, 0777);

然后尝试取消链接:

@unlink('./secure/'.$data['row']->videothumbnail);

【讨论】:

    【解决方案2】:

    尝试回显您提供的取消链接功能的路径。

    应该是这样的:

    base_url()."secure/".$data['row']->videothumbnail;
    

    【讨论】:

    • 这仍然无济于事,因为您无法取消与 URL 的链接!
    • 嗯 - 不,它不是...base_url 将为您提供HTTP 路径,unlink 函数需要目录路径...
    【解决方案3】:

    即使在文件夹上设置了正确的权限后,我也遇到了这个问题。但是下面的代码对我有用。

    unlink(realpath(APPPATH . '../uploads').'/'.$ImageName);      
    

    【讨论】:

      【解决方案4】:

      尝试使用$_SERVER['DOCUMENT_ROOT'] 而不是base_url

      【讨论】:

        【解决方案5】:
        $this->load->helper("file") 
        unlink(base_url('folder/file.ext'));
        

        地点:

        \app\控制器

        \系统\库

        **文件夹\file.ext**

        【讨论】:

          【解决方案6】:
          $unlinkUrl = "secure/".$data['row']->videothumbnail;
          if(file_exists($unlinkUrl)){
              unlink($unlinkUrl);
          }
          else{
              echo $unlinkUrl." is not available";    
          }
          

          【讨论】:

            【解决方案7】:

            我认为你只是犯了一个愚蠢的错误。

            • 首先unlink的第一个参数应该是相对路径或绝对路径,但是base_url函数会返回一个包含域名的路径,你如何删除远程服务器上的文件?

            • 其次,'/secure/'.$data['row']->videothumbnail这里不是相对路径而是绝对路径

            您必须将其更改为 /the/absolute/path/to/secure/./the/relative/path/to/secure/不要错过点

            【讨论】:

              【解决方案8】:

              使用它来取消链接

              $oldthumb = "secure/".$data['row']->videothumbnail;
              @unlink($oldthumb);
              

              【讨论】:

                【解决方案9】:

                首先加载$this->load->helper("file"),然后取消链接

                unlink("secure/".$data['row']->videothumbnail);
                

                【讨论】:

                  【解决方案10】:
                  if ($rowAffected > 0) {
                                  if ($isMediaUpload)
                                      if (file_exists('./uploads/' . $this->input->post('img_url')))
                                          unlink('./uploads/' . $this->input->post('img_url'));
                                              redirect('/admin/configration', 'location');
                              }
                  

                  【讨论】:

                    【解决方案11】:

                    虽然我来晚了,但可能有人需要这个。

                    unlink(FCPATH."secure/".$data['row']->videothumbnail)
                    
                    **FCPATH** - path to front controller, usually index.php
                    **APPPATH** - path to application folder
                    **BASEPATH** - path to system folder.
                    

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 2017-05-06
                      • 1970-01-01
                      • 2023-03-18
                      相关资源
                      最近更新 更多