2

phpMyAdmin で MySql データベースを使用するミュージシャン向けのソーシャル ネットワーク タイプの Web サイトに取り組んでいます。ウェブサイトで画像ファイルをデータベースに挿入して表示する際に問題が発生しています (プロフィール写真用)。イメージは LONGBLOB としてデータベースに格納されます。

phpMyAdmin から直接画像を追加すると、問題なく動作します。これは、データベースに従って LONGBLOB データ型に .bin として保存された .jpg です。私のウェブサイトでは、次を使用して完全にクエリおよび表示できます。

<img src="data:image/jpeg;base64,<?php echo base64_encode($memberpicture);?>" 
ALT="Member does not have picture" WIDTH=100 HEIGHT=100></img>

ただし、Web サイトのユーザーがプロファイルを作成し、Web サイトの「プロファイルの作成」機能を使用してプロファイル画像として画像を挿入した場合、プロファイルには表示されません。画像の選択コードは次のとおりです。

...
<div class="control-group">
    <div class="controls">
        <label>Band Picture</label>
        <input type="file" name="picture"/>
    </div>
</div>
...

そして、挿入コードは次のとおりです。

<?php
    session_start();
    foreach($_POST AS $key => $val) {
    $_SESSION[$key]=$val;
}

mysql_connect("***", "***", "***");
mysql_select_db("musicians");

//...declare other values(name, bio, etc...
$cpicture=$_POST['picture'];
$cpicture = stripslashes($cpicture);
$cpicture = mysql_real_escape_string($cpicture);

$profileInsert="INSERT INTO profile(PROFILE_BANDNAME,PROFILE_GENRE,PROFILE_BANDBIO,
    PROFILE_PICTURE,PROFILE_ART,PROFILE_MUSICVIDEO,PROFILE_PLAYLIST)
    VALUES ('$cbandname','$cgenre','$cbio','$cpicture','$cart','$cvideo','$cplaylist')"
or die(mysql_error());

データベースを見ると、挿入後にファイルがありますが、非常に小さく (約 16 バイト)、Web サイトまたはデータベースから直接表示することはできません。これは、.bin として保存される .jpg とは対照的に、データベースに従って LONGBLOB データ型に .bin として保存される .bin です。この挿入物に関するヘルプは大歓迎です!

4

3 に答える 3

0

問題はMySqlサーバーネットワークにあると思います。構成のmax_allowed_pa​​cketを確認してください:)

于 2013-03-18T22:42:25.267 に答える
0

ファイルシステムを使用する方がおそらく良いでしょうが、コードがフォームにないように見えるので、これがどのように機能するかを自分のやり方で行うことを主張する場合、メソッドまたは送信ボタンはありませんか?

于 2013-03-18T22:39:40.390 に答える
0

これが違いを生むかどうかはわかりませんが、保存するためのコードは、Google で検索したときの最初のいくつかの結果とは異なって見えます:

http://www.php-mysql-tutorial.com/wikis/mysql-tutorials/uploading-files-to-mysql-database.aspx http://mirificampress.com/permalink/ Saving_a_file_into_mysql http://bytes.com/ topic/php/insights/740327-uploading-files-into-mysql-database-using-php

たぶん、コードスワップを試してみてください。

ファイルシステムの使用だけに関して、ここで他のコメント/回答をエコーし​​ます。しかし、返信で述べたように機能させようとしているだけの場合は、別のサイトから機能するコードをコピーしてください。

于 2013-03-19T02:25:37.530 に答える