2015-02-09 6 views
5

sto cercando di memorizzare 2 immagini nel mio database. quando carico 2 immagini, entrambe si stanno salvando con successo, ma quando provano a caricare una singola immagine, la cosa dà errore non definito per un'immagine non caricata. dove mi sbaglio?Variabile non definita durante il caricamento di un file in php

Il mio codice è:

  <label for="certificate">Upload Scaned Document:</label> 
     <input type="file" id="uploadImage" name="image" /> 
     <label for="certificate">Upload Scaned QR Code</label> 
     <input type="file" name="QRimage" id="File2" /> 

E il codice PHP è

if((!empty($_FILES["image"])) && ($_FILES['image']['error'] == 0)) { 
    $imageName = mysql_real_escape_string($_FILES["image"]["name"]); 
    $imageData = mysql_real_escape_string(file_get_contents($_FILES["image"]["tmp_name"])); 
    $imageType = mysql_real_escape_string($_FILES["image"]["type"]); 

} 
if((!empty($_FILES["QRimage"])) && ($_FILES['QRimage']['error'] == 0)) { 
    $QRimageName = mysql_real_escape_string($_FILES["QRimage"]["name"]); 
    $QRimageData = mysql_real_escape_string(file_get_contents($_FILES["QRimage"]["tmp_name"])); 
} 
+0

@RakeshSharma OP dice che quando caricare due immagini si lavora bene che significa che c'è bisogno di controllare 'enctype'. – Sadikhasan

+0

puoi mostrare il tuo codice di caricamento –

+0

sto caricando il file utilizzando il modulo html. input type = "file" @Sharma Vikram – Nayana

risposta

1

Prova questa

$imageName = ""; 
$imageData = ""; 
$QRimageName = ""; 
$QRimageData = ""; 
if(!empty($_FILES["image"]["name"])){ 
$imageName = mysql_real_escape_string($_FILES["image"]["name"]); 
$imageData = mysql_real_escape_string(file_get_contents($_FILES["image"]["tmp_name"])); 
} 
if(!empty($_FILES["QRimage"]["name"])){ 
$QRimageName = mysql_real_escape_string($_FILES["QRimage"]["name"]); 
    $QRimageData = mysql_real_escape_string(file_get_contents($_FILES["QRimage"]["tmp_name"])); 
    } 
+0

le sue opere. grazie :) – Nayana

1

Aggiungi controllo di isset sia per se condition..because quando si sta caricando sia le immagini allora $ _FILES ottenere l'immagine e il suo dare vero in se condizione, ma quando si carica un'immagine un'immagine poi altra immagine se il caso non ottiene l'immagine in $ _FILES quindi il suo errore di dare di indefinito ... variabile dovrebbe essere impostato prima di qualsiasi operazione ..

if(isset($_FILES["image"]) && (!empty($_FILES["image"])) && ($_FILES['image']['error'] == 0)) { 

if(isset($_FILES["QRimage"]) && (!empty($_FILES[" QRimage "])) && ($_FILES[' QRimage ']['error'] == 0)) { 
+0

nuovo errore (variabile non definita: QRimageName) e (QRimageData) – Nayana

+0

@ Nayana..possono pubblicare l'errore così com'è ... –

+0

Avviso: Variabile non definita: QRimageName in C: \ wamp \ www \ print \ main.php on line 56 – Nayana

1

Verificare con isset() come

if((isset($_FILES["image"]["size"]) && 
    ($_FILES["image"]["size"] > 0)) 
{ 
} 

if((isset($_FILES["QRimage"]["size"]) && 
    ($_FILES["QRimage"]["size"] > 0)) 
{ 
    $QRimageName = mysql_real_escape_string($_FILES["QRimage"]["name"]);  
    $QRimageData = mysql_real_escape_string(file_get_contents($_FILES["QRimage"]["tmp_name"])); 
} 
+0

nuovo errore (variabile non definita: QRimageName) e (QRimageData) – Nayana

+0

Il problema è che si impostano le variabili all'interno di un'istruzione condizionale. Se tale istruzione condizionale non passa, tali variabili essenzialmente non esistono all'interno dell'applicazione da utilizzare in seguito. Prova a inizializzare la variabile 'QRimageName' prima delle istruzioni if. – Jeemusu

+0

dove è stata utilizzata la variabile 'QRimageName' e' QRimageData'? – Sadikhasan

Problemi correlati