2015-02-09 13 views
5

tôi đang cố gắng lưu trữ 2 hình ảnh trong cơ sở dữ liệu của mình. khi tôi tải lên 2 hình ảnh thì cả hai đều lưu trữ thành công nhưng khi cố gắng tải lên một hình ảnh duy nhất thì việc đưa ra lỗi không xác định của nó cho hình ảnh chưa được tải lên. nơi tôi sai?Biến không xác định trong khi tải lên tệp trong php

Mã của tôi là:

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

Và mã php là

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 nói khi tải hai hình ảnh nó làm việc tốt có nghĩa là không cần phải kiểm tra 'enctype'. – Sadikhasan

+0

bạn có thể hiển thị mã tải lên của mình –

+0

tôi đang tải lên tệp bằng biểu mẫu html hay không. input type = "file" @Sharma Vikram – Nayana

Trả lời

1

Hãy thử điều này

$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

các tác phẩm của nó. cảm ơn bạn :) – Nayana

1

Thêm séc của isset cho cả nếu condition..because khi bạn đang tải lên cả hình ảnh sau đó $ _FILES nhận được hình ảnh và nó cho đúng trong điều kiện nhưng khi tải lên một hình ảnh sau đó hình ảnh khác nếu trường hợp không nhận được hình ảnh trong $ _FILES do đó, lỗi cho biến không xác định ... sẽ được đặt trước bất kỳ thao tác nào ..

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

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

lỗi mới (Biến không xác định: QRimageName) và (QRimageData) – Nayana

+0

@ Nayana..can bạn vui lòng gửi lỗi vì nó là ... –

+0

Lưu ý: Biến không xác định: QRimageName trong C: \ wamp \ www \ print \ main.php trên dòng 56 – Nayana

1

Kiểm tra với isset() như

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

lỗi mới (Biến không xác định: QRimageName) và (QRimageData) – Nayana

+0

Vấn đề là bạn đặt các biến bên trong câu lệnh có điều kiện. Nếu câu lệnh điều kiện đó không vượt qua thì các biến đó về cơ bản không tồn tại trong ứng dụng để sử dụng sau này. Thử khởi tạo biến 'QRimageName' trước câu lệnh if. – Jeemusu

+0

bạn đã sử dụng biến 'QRimageName' và' QRimageData' ở đâu? – Sadikhasan

Các vấn đề liên quan