Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Carico il file ma non mi permette di eliminarlo

    Buongiorno a tutti.
    Utilizzo il pacchetto "jQuery File Upload" per caricare i file.
    Nel momento che carico un file, se non trova la cartella richiesta, la crea e carica il file. Fin qui tutto ok.
    Se devo eliminare il file e la cartella, lo faccio attraverso uno script php.
    Ma il problema sorge, nel caso in cui, debba eliminare file e cartella manualmente.
    Non me lo permette.
    Questa è la porzione di script dove ci sono anche i permessi:
    Codice PHP:
    'mkdir_mode' => 0755,

    if (!
    is_dir($upload_dir)) {                
    mkdir($upload_dir$this->options['mkdir_mode'], true);            
    }
    $file_path $this->get_upload_path($folder_name."/".$file->name);                        
    $append_file $content_range && is_file($file_path) && $file->size $this->get_file_size($file_path);          if ($uploaded_file && is_uploaded_file($uploaded_file)) {                
    // multipart/formdata uploads (POST method uploads)               
    if ($append_file) {                    
    file_put_contents(                        
    $file_path,                        
    fopen($uploaded_file'r'),                        
    FILE_APPEND                    
    );                
    } else {                    
    move_uploaded_file($uploaded_file$file_path);                    
    header("location: UploadHandler.php");
    }
    ........ 
    Un altra cosa, nella directory principale che contiene tutti i file e le cartelle non c'è nessun htaccess che contenga qualche direttiva che nega qualsiasi azione.

    Grazie a tutti.
    Ultima modifica di ANTAGONIA; 30-10-2020 a 11:25

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    "Manualmente" vuol dire tramite FTP?
    Il problema possono essere i permessi, l'utente FTP prende 5, quindi read ed execute, ma non write, quindi non puoi modificare ciò che crea l'utente web che è l'owner del file salvato.

  3. #3
    Si tramite FTP.
    quindi, ammettendo il caso di un errore di pubblicazione di file e cartella, e l'impossibilità di poterlo eliminare con il classico pulsante Elimina File, quindi attraverso php, mi devo rivolgere al sistemista?
    Cioè, non c'è un modo per ovviare al momento del caricamento, con altri permessi?
    Grazie.

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Tramite PHP puoi farlo, è uno script PHP che lo salva sul server, quindi è lui l'owner.
    Devi realizzare una funzione che riceva il path per il file da cancellare ed esegua su questo la funzione unlink()

  5. #5
    scusami forse non mi sono spiegato.
    Con php rimuovo sia il file che la cartella, ma nel caso in cui, lo devo fare manualmente non me lo permette.
    Quindi, c'è il modo di dare dei permessi nel momento dell'upload che poi mi permettano anche di eliminare file e cartelle manualmente?

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    775 o 757 a seconda di dove venga assegnato l'utente ftp, ma più allenti i permessi, più ti esponi a rischi.
    Intanto fa qualche prova cambiando i permessi e verificando se i file diventano cancellabili, almeno si è sicuri che il problema è quello.

  7. #7
    ok ti ringrazio.

  8. #8
    l'argomento è sempre lo stesso.
    Utilizzo questa funzione, come detto in precedenza per eliminare file e cartella.
    Codice PHP:
    function rmdir_recursive($dir) {  
    foreach(
    scandir($dir) as $file) {    
    if (
    '.' === $file || '..' === $file) continue;    
    if (
    is_dir($dir.'/'.$file)) rmdir_recursive($dir.'/'.$file);   
    else 
    unlink($dir.'/'.$file);  
    }  
    rmdir($dir);

    La path è questa: doc/bollette/2020/25/bollettino_aprile.pdf

    Vorrei fare in modo che, attraverso la funzione, non solo mi elimini bollettino_aprile.pdf + 25(che già lo fa), ma anche l'anno 2020, nel caso in cui non ci siano altre cartelle e file.
    Grazie.

  9. #9
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Finita questa funzione ne attivi un'altra che controlli il contenuto di 2020, se contiene solo . e .. allora è vuota e la cancelli.

  10. #10
    avevo pensato ad una cosa del genere, ma meglio chiedere a chi ne sa più di me.
    Ti ringrazio davvero tanto.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.