2015-02-09 15 views
5

Próbuję zapisać 2 obrazy w mojej bazie danych. kiedy przesyłam 2 obrazy, oba zapisują się pomyślnie, ale gdy próbuję załadować pojedynczy obraz, to daje on niezdefiniowany błąd dla nie przesłanego obrazu. gdzie się mylę?Niezdefiniowana zmienna podczas przesyłania pliku w php

Mój kod to:

  <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" /> 

i kod php jest

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 PO mówi, kiedy przesłać dwa zdjęcia to działa dobrze, to znaczy nie ma potrzeby, aby sprawdzić 'enctype'. – Sadikhasan

+0

możesz pokazać swój kod przesyłania –

+0

Przesyłam plik przy użyciu formularza html. input type = "file" @Sharma Vikram – Nayana

Odpowiedz

1

Spróbuj

$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

jego prace. Dziękuję Ci :) – Nayana

1

Dodaj sprawdzenie isset zarówno jeżeli condition..because podczas przesyłania zarówno obrazy następnie $ _FILES uzyskanie obrazu i jego podanie w warunek, ale przy przesyłaniu jednego obrazu to inny obraz, jeśli nie otrzyma obrazu w $ _FILES, więc jego błąd dawania niezdefiniowanej ... zmiennej powinien zostać ustawiony przed jakąkolwiek operacją ..

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

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

nowy błąd (Niezdefiniowana zmienna: QRimageName) i (QRimageData) – Nayana

+0

@ Nayana..możesz opublikować błąd, ponieważ jest ... –

+0

Uwaga: Niezdefiniowana zmienna: QRimageName w C: \ wamp \ www \ print \ main.php on line 56 – Nayana

1

Sprawdź z isset() jak

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

new error (Undefined variable: QRimageName) i (QRimageData) – Nayana

+0

Problem polega na tym, że ustawiasz zmienne w instrukcji warunkowej. Jeśli to zdanie warunkowe nie przejdzie, to te zmienne zasadniczo nie istnieją w aplikacji do późniejszego użycia. Spróbuj zainicjować zmienną 'QRimageName' przed instrukcjami if. – Jeemusu

+0

gdzie są używane zmienne 'QRimageName' i' QRimageData'? – Sadikhasan

Powiązane problemy