-2

私は自分のイメージを 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'];
}?>
4

1 に答える 1

0

一時的な名前をデータベースに挿入しても、それは一時的なものであるため、何も達成されません。を使用してサーバー上のどこかに画像をmove_uploaded_file()保存し、新しい永続的な名前をデータベースに保存して、後で 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'].'" />";
}?>
于 2013-08-17T17:39:14.117 に答える