上传图片时,文件名不能为空

时间:2015-02-09 11:31:46

标签: php html string error-handling

我将2张图片存储到我的数据库中。如果我一次上传2张图片,那么它的存储成功。但如果尝试上传只有image1或如果我尝试上传image2或如果我没有上传任何图像,那么我收到此警告

  

警告:file_get_contents()[function.file-get-contents]:第24行的C:\ wamp \ www \ print \ main.php中的文件名不能为空

我的代码是:

    <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 个答案:

答案 0 :(得分: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"]));
}