Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Problema con fopen()

  1. #1

    Problema con fopen()

    Ciao a tutti,

    in un form php ho 2 campi in cui l'utente può inserire un'immagine:

    codice:
    <input name="immagine1" id="immagine1" type="file">
    <input name="immagine2" id="immagine2" type="file">
    Nello script recupera_file.php ho questo:

    Codice PHP:
    //recupero info su immagine1 
    $immagine1 $_FILES['immagine1']['tmp_name']; 
    $immagine_name1 $_FILES['immagine1']['name']; 
    $immagine_size1 $_FILES['immagine1']['size']; 
    $immagine_type1 $_FILES['immagine1']['type']; 

    //recupero info su immagine2 
    $immagine2 $_FILES['immagine2']['tmp_name']; 
    $immagine_name2 $_FILES['immagine2']['name']; 
    $immagine_size2 $_FILES['immagine2']['size']; 
    $immagine_type2 $_FILES['immagine2']['type']; 
    poi dopo i vari controlli su tipo di file e dimensione passo a questo che invia le immagini alla directory indicata

    Codice PHP:
    //Invia immagini alla directory 
    if (!move_uploaded_file($_FILES['immagine1']['tmp_name'], 'img/'.$immagine_name1) || !move_uploaded_file($_FILES['immagine2']['tmp_name'], 'img/'$immagine_name2.)) 
    $msg 'Errore' 


    Il problema che ho è questo: se inserisco tutte e due le immagini nei campi immagine 1 e immagine2 tutto funziona correttamente, se invece voglio inserire solo una immagine lasciando vuoto il campo immagine2 mi dice che l'argomento di fopen() non può essere vuoto. Come posso fare per ovviare a questo problema, cioè avere le possibilità di scegliere se inserire 1 o 2 immagini?

  2. #2
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    ti basta fare un controllo a monte dell'upload sul valore di immagine1\2
    If you think your users are idiots, only idiots will use it. DropBox

  3. #3
    in che modo?

  4. #4
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    a me il tuo codice funziona correggendo questa riga
    Codice PHP:
    //Invia immagini alla directory  
    if (!move_uploaded_file($_FILES['immagine1']['tmp_name'], 'img/'.$immagine_name1) || !move_uploaded_file($_FILES['immagine2']['tmp_name'], 'img/'$immagine_name2.))  
    $msg 'Errore'  

    così
    Codice PHP:
    //Invia immagini alla directory  
    if (!move_uploaded_file($_FILES['immagine1']['tmp_name'], 'img/'.$immagine_name1) || !move_uploaded_file($_FILES['immagine2']['tmp_name'], 'img/'.$immagine_name2))  
    $msg 'Errore'  


  5. #5
    ho sbagliato trascrivendo il punto... il problema non è l'upload delle immagini...è che se io il campo lo voglio lasciare vuoto lui mi da errore xkè non è stato scelto nessun file

  6. #6
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    io ho fatto queste prove:
    1. due campi compilati => upload ok;
    2. primo campo compilato e secondo vuoto => upload ok;
    3. primo campo vuoto e secondo compilato => upload ok;
    4. tutti e due vuoti => nessun upload (e direi...)

    Non ho mai ricevuto errori, né a schermo né nel log di apache

  7. #7
    ok allora forse l' "errore" è questo controllo che faccio sul tipo di immagine che viene caricata:

    Codice PHP:
    if ($immagine_type1 != "image/jpeg" || 
        
    $immagine_type2 != "image/jpeg")      
    { echo 
    'Il formato consentito è solo jpeg';

    Se lascio un campo vuoto ovviamente non riconosce il formato come jpeg. Come posso risolvere? E' necessario che le immagini caricate siano solo jpeg.

  8. #8
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    eh, dovresti verificare a monte di tutto che il dato non sia vuoto e poi valorizzare le tue variabili...
    non so, mi viene in mente che forse potresti
    1. verificare che FILES non sia vuoto;
    2. inserire i dati diversi da vuoto in un array e poi caricarli usando ad esempio un foreach.

    Avresti anche un altro vantaggio in questo modo: inserire più campi FILES nel form senza dover modificare il codice per l'upload

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.