2014-04-02 38 views
6

在我的项目中,我有一个文件夹安全在根目录中。该项目包看起来像:无法取消链接Codeigniter中的文件

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。但图像上传只读权限。是不是因为这个,它没有被取消链接?

任何人都可以帮助我解决这个问题吗?

在此先感谢。

+0

谢谢,我错过了。之前/安全。 – Jenz

+0

你可以尝试在文件上执行chmod后上传更改权限 – mic

+0

如果dir路径错误,那么'unlink'函数显示警告,你能显示警告吗? – Girish

回答

0

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

应该是这样的:

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

这仍然不会帮助,因为你不能从URL中取消链接! – mic

+0

恩 - 不,不是......''base_url'会为你提供'HTTP'路径,'unlink'功能需要目录路径... – Girish

1

试试这个:

设置权限使用动态:

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

然后尝试取消链接:

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

第一加载$this->load->helper("file"),然后取消该关联

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

我也有这个问题,即使设置该文件夹右侧的权限之后。但下面的代码为我工作。

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

尝试使用$_SERVER['DOCUMENT_ROOT']代替base_url

0
$this->load->helper("file") 
unlink(base_url('folder/file.ext')); 

位置:

\应用\控制器

\ SYSTEM \库

**文件夹\ file.ext **

0
$unlinkUrl = "secure/".$data['row']->videothumbnail; 
if(file_exists($unlinkUrl)){ 
    unlink($unlinkUrl); 
} 
else{ 
    echo $unlinkUrl." is not available";  
} 
0

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

  • 首先的unlink的第一个参数应该是相对路径或绝对路径,但base_url函数将返回你一个路径包含域名,你怎么能删除远程文件?

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

您必须更改成/the/absolute/path/to/secure/./the/relative/path/to/secure/不要错过DOT

0

使用此断开链接

$oldthumb = "secure/".$data['row']->videothumbnail; 
@unlink($oldthumb); 
0
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'); 
      }