2016-08-07 8 views
0

私のHTMLフォームからmySQL blobカラムに画像をアップロードしようとしています。 私はPHPファイルが、動作していないものを把握しようとするすべてのテストに基づいてファイルを受信して​​いないように感じています。htmlとphpを使用してmysqlに画像をアップロード

関連するHTMLコード:

<form action = "insert.php" method="post" enctype="multipart/form-data"> 
<input type="file" name="myimage"> 
<input type="submit" name = "Insert" value="Insert"> 
</form> 

関連するPHPコード:

$imagename=$_FILES["myimage"]["name"]; 

if(getimagesize($FILES['myimage']['tmp_name']) == FALSE){ 
    echo "no image"; 
} 
//Get the content of the image and then add slashes to it 
$imagetmp = addslashes($_FILES['myimage']['tmp_name']); 
$image = file_get_contents($imagetmp); 
$sql = "INSERT INTO locations (image) VALUES ('$image')"; 
$res = mysql_query($sql) or die(mysql_error()); 

は、私はいつもエコー私 "何の画像" を取得しないので、PHPはファイルが供給されていないと信じています。

+1

フォームタグで最初に追加する

' –

+0

@ChoncholMahmud okこれで完了しました。あなたのSQL構文で。あなたのMySQLサーバのバージョンに対応するマニュアルをチェックしてください。正しい構文を使用するには1行目にある –

+0

イメージデータをdbに格納することは潜在的にdbを大きなサイズにすることです。 – RamRaider

答えて

0

データベースに挿入する前に、私はあなたがbase64_encodeのデータであるべきだと思います。

$imagename=$_FILES["myimage"]["name"]; 
if(getimagesize($FILES['myimage']['tmp_name']) == FALSE){ 
    exit("no image"); 
} 

$image = base64_encode(file_get_contents($_FILES['myimage']['tmp_name'])); 

あなたのような何かを行うことができmysqliを使用するには:

$servername = "localhost"; 
$username = "foo"; 
$password = "xxx"; 
$dbname = "bar"; 

$db=new mysqli($servername, $username, $password, $dbname); 

$sql='insert into `locations` set `image`=?'; 
$stmt=$db->prepare($sql); 

$stmt->bind_param('s', $image); 
if($stmt) $stmt->execute(); 

$db->close(); 

$sql = "INSERT INTO `locations` (`image`) VALUES ('$image')"; 
$res = mysql_query($sql) or die(mysql_error()); 
+0

okありがとうございます。 –

0

あなたが直面したエラーは、気が付きませんでした。あなたのコードに問題があります。私はそれがうまくいくと思います。この拡張

警告

<form action = "insert.php" method="post" enctype="multipart/form-data"> 

はPHP 5.5.0で廃止されました、そしてそれは、PHP 7.0.0で削除されました。代わりに、MySQLiまたはPDO_MySQL拡張を使用する必要があります。

+0

mysqliのクエリ行はどのように見えますか? –

+0

リンクをクリックするだけで役立ちます。 http://stackoverflow.com/questions/22377686/insert-view-image-into-from-a-mysql-db。あなたの特定の質問の回答を投稿した後、あなたの質問コードに何も編集/追加しないでください。誰かがあなたの最初の質問に答えてくれますように。 –

0

それは愚かなアイデアだというMySQLデータベースに画像をアップロードします。サーバー上のフォルダに画像をアップロードし、パス(画像へのパス)をデータベースに書き込みます。それが最適な変種です。

+0

これはこの質問の回答ではありません。コメントセクションになることができます。StackOverflow.Thanksでスマートにしてください。 –

関連する問題