Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Aiuto con funzione copy

    Salve a tutti, oggi la funzione copy mi sta facendo impazzire.
    Ho fatto un piccolo script per l'upload di alcune immagini su server. In locale lo script funziona perfettamente, caricato sul server remoto invece mi da questo errore:

    codice:
    Warning: copy(D:/Web/miosito.it/test/57_tmp.jpg) [function.copy]: failed to open stream: Permission denied
    Ora, il mio dubbio è che ci sia un qualche problema con la path da me impostata, ho già controllato che per la cartella in questione i permessi chmod siano impostati sul valore di 777.

    In locale per impostare la path di upload ho usato il comando "$_SERVER['DOCUMENT_ROOT']" che mi ha restituito una path di questo tipo:
    "\percorso1\percorso2\percorso3"

    Ho impostato questo percorso e tutto è filato liscio.

    Sul server remoto invece, quando uso il comando per scoprire la root path mi da questo percorso:

    "D:\Web\miosito.it" (notare i backslashes)

    A questo punto non so proprio come impostare la path.
    Ho provato a scriverla così:

    "D:/Web/miosito.it"
    Ma mi da errore di permessi

    Allora ho provato a scriverla così:
    "D:\Web\miosito.it"
    idem come sopra.

    Sembra proprio che non riesca a trovare il percorso da me impostato.

    Avrei veramente bisogno di una mano per capire bene come impostare la path giusta, spero in voi.

    ciao.

  2. #2
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    1- che os ha il server ?
    2- le funzioni di copia files ono abilitate per l'utente apache ?
    3- i percorsi incapsulati correttamente nella con la funzione "real_path()" ?
    4- dici che i permessi sono 777 .... ma lo sono in entrambe le dir ? L'utente apache che solitamente e' quello che esegue gli script potrebbe non avere accesso alle dir create via FTP se usi linux.

  3. #3
    Anzitutto ti ringrazio per la risposta.
    Senti, credo di aver capito che invece il problema potrebbe essere proprio nei permessi chmod della cartella nella quale dovrei mettere i file.
    C'è una funzione php per capire che permessi ha una certa cartella?

  4. #4

  5. #5
    Il mistero si infittisce, ho usato questo pezzo di codice per sapere che tipo di permessi sono impostati nella cartella di mio interesse:

    codice:
    <?php
    echo substr(sprintf('%o', fileperms('/miacartella')), -4);
    ?>
    L'output è: 0777

    Credo a questo punto che con i permessi è tutto ok, ciò nonostante continuo ad ottenere la risposta:

    codice:
    Warning: copy(D:\Web\miosito.it\outlet\assets\uploads\gallerie\66_tmp.jpg) [function.copy]: failed to open stream: Permission denied in D:\Web\miosito.it\outlet\conf\config.inc.php on line 22
    Cosa potrebbe essere?

    Mi suggerivi prima di controllare che la funzione di copy sia abilitata per l'utente apache, come devo fare? Considera che non sono il gestore del server remoto, posso usare qualche funzione php che mi dia le informazioni che mi servono? Cos'altro mi conviene controllare?

    Grazie.

  6. #6
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Uhm ... l'errore e' in apertura del file cmq non in scrittura.QUindi puo' essere che nn hai i permessi di lettura del file nella cartella sorgente.

    Per controllare a volte si usa il controllo

    if( function_exists("copy") )
    {
    // \\0/
    }
    else
    {
    // D'HO >.<
    }

    Cmq prova nel caso a fare un phpinfo() e controlla l'impostazione del server, ma per me e' un discorso solamente di permessi in lettura per l'utente apache. Controlla i permessi della cartella/file in lettura.

  7. #7
    Allora io il file cerco di caricarlo tramite form con campo file, allora ho fatto così per vedere di capirci qualcosa:

    codice:
    print_r($_FILES['photoimg']['tmp_name']);
    che mi restituisce:
    C:\Temp\php16AD.tmp

    Allora ho controllato i permessi della cartella Temp:

    codice:
    echo substr(sprintf('%o', fileperms('C:\\Temp')), -4);
    e mi restituisce:
    0777


  8. #8
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Ecco il problema

    Devi usare la funzione move_uploaded_file($src,$dst) ;

    http://php.net/manual/en/function.mo...oaded-file.php

    Non puoi modificare i permessi della cartella tmp del server !!!
    Altrimenti disastro possono scriverci tutti dentro la e ti impallano il server!!!!

    Prova con la funzione proposta

  9. #9
    Ho fatto come mi hai suggerito, questo è il risultato:

    codice:
    move_uploaded_file($userfile,"$nomeTmpImg");
    Risposta:

    codice:
    Warning: move_uploaded_file(D:\Web\miosito.it\outlet\assets\uploads\gallerie\76_tmp.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in D:\Web\miosito.it\outlet\conf\config.inc.php on line 25
    
    Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\Temp\php16BC.tmp' to 'D:\Web\miositoi.it\outlet\assets\uploads\gallerie\76_tmp.jpg' in D:\Web\Lecucinedeimastri.it\outlet\conf\config.inc.php on line 25
    Ho controllato se esistono le due variabili che gli ho dato ($userfile e $nomeTmpImg) e questo è il risultato:

    codice:
    print_r($userfile);
    		echo ('
    ');
    		print_r($nomeTmpImg);
    risposta:

    C:\Temp\php16BC.tmp
    D:\Web\miosito.it\outlet\assets\uploads\gallerie\7 6_tmp.jpg

  10. #10
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Una cosa ...... che cosa stai usando come server ?

    Poi se devi copiare un file da punto a a punto b usa la copy se devi sposare un file uploadadto tramite form usi la move_uploaded_file.

    Se usi server su win .... e' strano non dovresti avere problemi con i permessi .. ma se sei su server in hosting con win buona fortuna .... devi sentire l'hoster.

    Inoltre
    Permission denied in D:\Web\miosito.it\outlet\conf\config.inc.php on line 25
    perche' viene lanciata in un file di configurazione ?????????????????????

    Cmq e' strana pure questa :
    failed to open stream: Permission denied

    Come vedi non reisce a leggere il file dalla cartella per problemi di permessi se sei in hosting mi sa che devi chiedere all'hoster.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.