除非添加了新记录,否则MySQL数据库会显示损坏的图像

时间:2013-08-30 20:06:25

标签: php mysql file-upload

所以我运行了一个脚本,可以将图像上传到我的数据库中。但是,始终有一条记录没有扩展名,并且每次都具有相同的文件名。如果我删除那条记录,那段文字" d41d8cd98f00b204e9800998ecf8427e"并不重要。将填入另一个。如果我添加新记录,它将转移到另一条记录。

以下是我插入数据库和文件系统的方法:

$art = mysql_real_escape_string(stripslashes($_FILES["art"]["name"]));
    $art_ext = pathinfo($art, PATHINFO_EXTENSION);
    if(strtoupper($art_ext)=="JPEG"){
        $art_ext = "jpg";
    }
    $art = md5($art).".".$art_ext;
    if($art!=""){
        move_uploaded_file($_FILES['art']['tmp_name'], "images/".$art );
    }
$sql = "INSERT INTO event (imglink, title, date, tag1, tag2, Price, city, subtitle, venue, password, description, fb) VALUES ('$art','$title','$date','$tag1','$tag2','$price','$city','$subtitle','$venue','$password', '$description', '$fb')";
    $result = mysql_query($sql) or die(mysql_error());

有问题的记录图片如下:     phpMyAdmin

1 个答案:

答案 0 :(得分:3)

d41d8cd98f00b204e9800998ecf8427e是一个空字符串的md5,所以即使没有上传文件也可以访问你的代码,因此文件名/扩展名未设置

很难从您发布的有限代码中分辨出来,但是如果您使用相同的页面显示上传表单并接受数据,那么您最终会使用空文件名称调用代码的一个示例,GET错误地落入了这段代码。