【问题标题】:save image to mysql with php使用php将图像保存到mysql
【发布时间】:2013-08-19 22:26:46
【问题描述】:

我创建了这个表单来将我的图像添加到 mysql 数据库中,我认为我做对了——因为它保存了一些东西 :D - 但它不会向我显示图像,我应该怎么做才能“查看”来自 mysql 的图像?!

这是我的表单 php:

$tmp_name=$_FILES['file']['tmp_name'];

if (isset($_POST['submit'])) {
if ((($_FILES['file']['type']) == "image/jpeg")
|| ($_FILES['file']['type']) == "image/gif"
|| ($_FILES['file']['type']) == "image/pjpeg"
&& ($_FILES['file']['size']) > 200000) {
$tmp_name=$_FILES['file']['tmp_name'];
// i also tried addslasheds   
$image = mysql_real_escape_string(file_get_contents($_FILES['file']['tmp_name']));
if ($_FILES['file']['error'] > 0) {
    echo "return code : " . $_FILES['FILES']['error'];
}else{
    if (file_exists($_FILES['file']['name'])) {
        echo "your file is already exists!";
    }else{
        Query("INSERT INTO image(image) VALUES ('".$tmp_name."')");
        echo "FILES has been stored";
    }
}
}
}else{
echo "invalid file";
}?>

我显示图像的代码是:

<?php 
require 'lib.php';
$request=Query('SELECT * FROM image');
while ($row = mysql_fetch_array($request)) {
echo $row['image'];
}?>

【问题讨论】:

  • 请注意 mysql_* 函数已弃用。您应该使用 mysqli_ 或 PDO。至于问题,请查看php.net/manual/en/function.move-uploaded-file.php 我没有看到您上传文件的任何目录。然后你需要用正确的来源回显图像标签
  • 这真的是你的代码吗?我已经看过几次了。您不存储图像数据,而只是一个临时文件名。即使您稍后将其取回,该图像文件也将早已不复存在。
  • 另见:google.com/…
  • @mario:我是在 w3schools 的帮助下写的,我想将图像存储在我的数据库中,而不是任何目录
  • @DeiForm:我看到一个数据库可以将图像保存到它的字段中,

标签: php mysql image upload


【解决方案1】:

将临时名称插入数据库不会完成任何事情,因为它只是临时名称。您需要使用 move_uploaded_file() 将图像保存在服务器上的某个位置,然后将新的 permanent 名称保存到数据库中,以便以后在 html 图像标签中使用它。

$filename = "myimage.jpg";
$path = "/var/www/images/".$filename;
$link = "http://domain.com/images/".$filename;
move_uploaded_file($FILES['file']['tmp_name'], $path);
$image = mysql_real_escape_string($link);
if ($_FILES['file']['error'] > 0) {
    echo "return code : " . $_FILES['FILES']['error'];
}else{
    Query("INSERT INTO image(image) VALUES ('".$image."')");
    echo "FILES has been stored";
}

然后当您检索图像时:

<?php 
require 'lib.php';
$request=Query('SELECT * FROM image');
while ($row = mysql_fetch_array($request)) {
echo '<img src="'.$row['image'].'" />";
}?>

【讨论】:

  • 图片已成功移至目录,但在检索页面,我看不到图片!!
  • 什么链接存储在数据库中,你的检索脚本打印出来的是什么?
  • 我的检索是图片框无法加载,
  • @user2668542 能否请您提供这些无法加载的图像框的 HTML?
  • 它成功了,我修复了一个语法错误,感谢您的帮助。
猜你喜欢
  • 2016-06-27
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-10
  • 1970-01-01
相关资源
最近更新 更多