Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    67

    [PHP] Upload file server

    Eccomi qui a richiedere il vostro cortese aiuto.

    premetto che non ho mai avuto modo di affrontare questo argomento, quindi mi sono affidata ad uno script trovato per caso che, nella mia ignoranza, comunque non funziona..

    ho ovviamente una form:

    codice:
    <input name="userfile" type="file" id="foto" class="butt09">
    <input type="hidden" name="MAX_FILE_SIZE" value="30000">
    Fin qui, ok.. il form è enctype="multipart/form-data".

    diciamo che nel documento "esecutivo" dichiaro la variabile:

    codice:
    $nominativo=$_FILES['userfile']['name'];
    poi lo script procede così:

    Codice PHP:
    do {
      if (
    is_uploaded_file($_FILES['userfile']['tmp_name'])) {
        
    // Controllo la dimensione del file
        
    if ($_FILES['foto']['size'] > 1048576) {
          
    $errore.="<center><span class=\"evid\">[b]Il file non deve superare una data dimensione.[/b]</span></center>
    "
    ;
          break;
        }
        
    // Ottengo le informazioni sull'immagine
        
    list($width$height$type$attr) = getimagesize($_FILES['userfile']['tmp_name']);
        
    // Controllo che le dimensioni (in pixel)
        
    if (($width 10000) || ($height 10000)) {
          
    $errore.="<center><span class=\"evid\">[b]Dimensioni non corrette.[/b]</span></center>
    "
    ;
          break;
        }
        
    // Controllo che il file sia in uno dei formati GIF, JPG o PNG
        
    if (($type!=1) && ($type!=2) && ($type!=3)) {
          
    $errore.="<center><span class=\"evid\">[b]Il formato immagini deve essere GIF, JPG o PNG.[/b]</span></center>
    "
    ;
          break;
        }
        
    // Verifico che sul sul server non esista già un file con lo stesso nome
        // In alternativa potrei dare io un nome che sia funzione della data e dell'ora
        
    if($tipo == "A" || $tipo == "B") {
            
    $andress="cartella/";
        } else {
            
    $andress="archivio/";
        }
        if (
    file_exists("$andress".$_FILES['userfile']['name'])) {
          
    $errore.="<center><span class=\"evid\">[b]Il file esiste già sul server: rinominare il file e riprovare.[/b]</span></center>
    "
    ;
          break;
        }
        
    // Sposto il file nella cartella da me desiderata
        
    if (!move_uploaded_file($_FILES['userfile']['tmp_name'], "$andress".$_FILES['userfile']['name'])) {
             
    $errore.="<center><span class=\"evid\">[b]Si è verificato un errore nel caricamento dell'immagine.[/b]</span></center>
    "
    ;
          break;
        }
      }
    } while (
    false); 
    Stampo infine la variabile $errore nel caso non risulti vuota.
    In conclusione, il caricamento dell'immagine non avviene, in quanto mi viene stampato l'errore ultimo "Si è verificcato un errore nel caricamento dell'immagine"..

    Dove sto sbagliando?

    Premetto subito che per quanto concerne l'inserimento del nome del documento nel database, il tutto avviene correttamente..

    Grazie in anticipo

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    356
    Ciao...
    sicura di avere i permessi giusti per la cartella in cui sposti alla fine il file?

    Non ti viene dato nessun warning?
    Jekkil

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    67
    Ciao! Grazie mille per la risposta, innanzi tutto

    Non mi viene dato nessun avviso.. eventualmente, come posso impostare tali permessi? Sottolineando che lavoro in remoto e non il locale?

    grazie ancora per la pazienza!

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    356
    intanto prova a mettere all'inizio dello script

    Codice PHP:
    error_reporting(-1); 
    e vedi se ti da qualche warning.

    Nel frattempo do un'occhiata più in profondità al codice
    Jekkil

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    356
    altra cosa: le cartelle "archivio" e "cartella" esistono e si trovano nella stessa directory dello script?
    Jekkil

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    67
    Allora.. Ho fatto come mi hai suggerito

    Le cartelle esistono e confermo e, inserendo il codice che mi hai dato, salta fuori questo:

    Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to access http://indirizzo/cartella/file.estensione

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    356
    Allora è sicuramente un problema di permessi

    devi dare alla cartella tutti i permessi in scrittura...

    come accedi ai file remoti? sicuramente da qualche parte c'è il modo di settare i permessi!!
    Jekkil

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    67
    Ti ringrazio ancora per la pazienza..
    Attualmente sono appoggiata ad altervista.. ho cercato qualcosa circa i permessi, ma ho trovato .htaccess, ma non c'è una voce che riguarda la questione medesima.. non c'entra nulla, vero?

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    356
    prova a mettere questa istruzione prima della funzione che ti da errore:

    Codice PHP:

    var_dump
    (is_writable($andress)); 
    e vediamo che ti viene fuori come output!!!
    Jekkil

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    67
    Eccomi qui..
    nulla, non succede niente

    Continua ad inserirmi il nome del file nel db, ma non carica la benedetta immagine..

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.