2014-04-02 15 views
6

Nel mio progetto ho una cartella protetta nella radice. Il pacchetto del progetto si presenta come:Impossibile scollegare il file in Codeigniter

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

All'interno cartella protetta sto caricando alcune immagini su Form Submit utilizzando

$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'); 

e sta funzionando correttamente. Ora, mentre sto modificando i dettagli, utilizzando un altro modulo, se sto caricando una nuova immagine invece del file immagine corrente, voglio scollegare quello corrente e quindi caricare il nuovo file.

Per questo sto usando il codice:

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

Ho provato anche con

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

dove $data['row']->videothumbnail) è il file immagine corrente dal database. Il nuovo file è stato caricato con successo. Ma il vecchio file non viene scollegato. Ho impostato il permesso della cartella protetta su 777. Ma le immagini sono caricate con permesso di sola lettura. È per questo che non viene scollegato?

Qualcuno può aiutarmi a risolvere questo?

Grazie in anticipo.

+0

grazie ho perso. prima/sicuro. – Jenz

+0

Si potrebbe provare a fare un chmod sul file dopo il caricamento per modificare le autorizzazioni – mic

+0

se il percorso dir errato quindi la funzione 'scollegamento' mostra l'avviso, puoi visualizzare un avviso ?? – Girish

risposta

0

Provare a echeggiare il percorso che si sta fornendo per scollegare la funzione.

dovrebbe essere qualcosa di simile:

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

che ancora non aiuterà perché Non puoi disconnettere da un URL! – mic

+0

Um - no non è ... 'base_url' fornirà il percorso' HTTP', la funzione 'unlink' richiede il percorso della directory ... – Girish

1

Prova questa:

Impostare l'autorizzazione utilizzando in modo dinamico:

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

quindi provare unlink:

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

First Carica il $this->load->helper("file") e poi scollegare lo

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

Ho anche avuto questo problema anche dopo aver impostato il permesso destro sulla cartella. Ma il codice seguente ha funzionato per me.

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

Provare a usare $_SERVER['DOCUMENT_ROOT'] invece di base_url

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

posizione:

\ App \ Controller

\ SYSTEM \ librerie

** cartella \ file.ext **

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

Penso che stiate facendo uno stupido errore.

  • In primo luogo, il primo parametro di unlink dovrebbe essere un percorso relativo o percorso assoluto, ma base_url funzione restituisce un nome di dominio percorso contiene, come si può eliminare un file sul server remoto?

  • In secondo luogo, '/secure/'.$data['row']->videothumbnail qui non è un percorso relativo, ma un percorso assoluto

è necessario modificare in /the/absolute/path/to/secure/ o ./the/relative/path/to/secure/ (NON PERDERE L'DOT)

0

uso questo per scollegare

$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'); 
      } 
Problemi correlati