使用Php和mySQL上传图片

3

我正在尝试使用PHP上传图像并保存到MySQL数据库,使其能够接受bmp、jpeg等不同的扩展名。使用以下代码时,一些上载的图像显示不完整。

这是上传表单:

<html>
  <form method="post" action="updateImage1.php" enctype="multipart/form-data">
  <table border=0>
  <tr>
    <td><center><img src="getImage.php?id='.$row["No"].'" width=250 height=180/></center><br>      
    <input type="file" name="s4"><br>
    <input name="update" type="submit" id="update" value="Save Changes" class="btn btn-primary" >
    &nbsp &nbsp
     </form><a href="admin3.php"><button type="button" class="btn btn-primary">Cancel</button></a>
 </tr>

 </table>
 </html>

这是updateImage1.php文件:
<?php
$s1 = addslashes(file_get_contents($_FILES['s4']['tmp_name']));

$host="localhost";
$user_name="root";
$database_name="5r";
$db=mysql_connect($host, $user_name,'');
if (mysql_error() > "") echo mysql_error() . "<br>";
mysql_select_db($database_name, $db);
if (mysql_error() > "") echo mysql_error() . "<br>";

$query = "UPDATE tblMain SET images='$s1' WHERE No=3";
$qresult = mysql_query($query);
echo "<script>alert('Records Successfully Updated'); location.href='admin3.php';</script>";
?>

这是getImage.php文件:
 <?php

 $No = $_GET['id'];
 $link = mysql_connect("localhost", "root", "");
 mysql_select_db("5r");
 $sql = "SELECT images FROM tblMain WHERE No=$No";
 $result = mysql_query("$sql");
 $row = mysql_fetch_assoc($result);
 mysql_close($link);

 header("Content-type: image/jpeg/bmp/png");
 echo $row['images'];
 ?>

2
我怀疑这个代码 header("Content-type: image/jpeg/bmp/png"); 是否有效,根据手册 http://php.net/manual/en/function.image-type-to-mime-type.php - 我建议您查看 https://dev59.com/1HE85IYBdhLWcg3wvGKm#2634072/ - Funk Forty Niner
1
我没有使用插入语句,因为我正在尝试更新数据库中上传的图像。但是每次我上传一个在Picasa照片查看器中编辑过并且扩展名为bmp的图像时,图像显示不完整。 - Rachelle Tud
images的数据库类型是什么? - David
请查看这个SO问题的答案 - David
"mysql"(普通)已被弃用,并将在未来消失。此页面显示其替代方案。"mysqli"并没有太大的区别,主要是改进了一些功能。 - David
显示剩余7条评论
1个回答

2
图像的数据类型更改为Long Blob

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