上传图片时出现“文件名不能为空”的错误。

3

我正在将2张图片存储到我的数据库中。如果我同时上传了2张图片,它会成功保存。但是如果我只尝试上传image1或者只尝试上传image2,或者根本没有上传任何图片,则会收到以下警告:

警告:file_get_contents() [function.file-get-contents]: Filename cannot be empty in C:\wamp\www\print\main.php on line 24

我的代码如下:

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

PHP 代码:

    $imageName = mysql_real_escape_string($_FILES["image"]["name"]);
    $imageData = mysql_real_escape_string(file_get_contents($_FILES["image"]["tmp_name"]));

    $QRimageName = mysql_real_escape_string($_FILES["QRimage"]["name"]);
    $QRimageData = mysql_real_escape_string(file_get_contents($_FILES["QRimage"]["tmp_name"]));

即使我尝试了这一切:

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

并且

   if((isset($_FILES["QRimage"]["size"])) && ($_FILES["QRimage"]["size"] > 0))

那么我就能克服这个警告。

如果我尝试上传Image1,则会出现以下情况。

         Notice: Undefined variable: QRimageName in C:\wamp\www\print\main.php on line 59
         Notice: Undefined variable: QRimageData in C:\wamp\www\print\main.php on line 59

如果我尝试上传Image2,则会出现问题。

         Notice: Undefined variable: imageName in C:\wamp\www\print\main.php on line 59
         Notice: Undefined variable: imageData in C:\wamp\www\print\main.php on line 59

我对这个错误感到厌烦,请帮助我解决这个问题。

1个回答

2

请尝试以下方法:

$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"]));
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接