unlink -> Permission denied

la versione del php è 5.2.17, il server è Windows con Microsoft-IIS/7.5.

ho creato via ftp la cartella test in cui ho inserito un'immagine e ho fatto una pagina di test con questo codice:

$dirname="test/zz.jpg";

if(file_exists($dirname))

   echo "<br>Esiste ".$dirname;

if(is_file($dirname))

   echo "<br>is_file ".$dirname;

if(is_writable($dirname))

    echo"<br> è writable";

$z=@unlink($dirname);

print_r(error_get_last());

a video mi compare:

Esiste test/zz.jpg 
is_file test/zz.jpg
è writable
Array ( [type] => 2 [message] => unlink(test/zz.jpg) [function.unlink]: Permission denied [file] => D:\Websites\.....\test.php 

non posso modificare i permessi con chmod perchè mi da permission denied sulla riga col chmod...

aiutooooooo sono due giorni che sto gogglando a manetta per trovare una soluzione e non ne posso più...

se qualcuno mi può illuminare magari potrà essere utile anche a qualcun altro...

temporanemante ho risolto così: accedo tramite script php con le credenziali ftp

$filetodelete="test/zz.jpg";


$conn_id = ftp_connect($serverftp);

$login_result = @ftp_login($conn_id, $userftp,$passftp );

if(file_exists($filetodelete) && is_file($filetodelete)) {
if (ftp_delete($conn_id, $filetodelete)) {

   echo "$filetodelete deleted successful\n";

  } else {

    echo "could not delete $file\n";

  }

}else

  echo "il file non esiste";

ftp_close($conn_id);
inviato 4 anni fa
discoariet
modificato 4 anni fa
controlla che l'owner che crea il file via ftp sia lo stesso di quello con cui gira apache, o meglio che l'utente apache abbia i privilegi per cancellare file generati dall'utente ftp!JellyBelly 4 anni fa
i file che tento di cancellare sono caricati con uno scritp di upload, cmq l'unlink fallisce in entrambi i casi sia x quelli caricati dallo scritp che quelli passati via ftp...provo a sentire chi fa hosting, dato che fino a pochi giorni fa funzionava, senz'altro hanno modificato dei permessi senza avvisare...discoariet 4 anni fa
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda