私は信じられないほど普通の仕事でなければならないことに苦労してきました。画像をアップロードしてWebサーバーに保存し、ファイルへのパスをMySQLデータベースに保存します(これはすべて機能しています)。動作しないのは、サーバーから画像ファイルをフェッチし、ajaxを介してページに表示することです。
src
もともと私はデータベースからパスを取得し、画像へのパスでタグの属性を更新しようとしていました。これは機能していましたが、この方法では、すべての画像がサーバー上のフォルダーにあり、すべてのユーザーがそれらにアクセスできます。これは良くない。これらのユーザーがアクセスできるのは、特定のユーザーに属する写真のみです。
これらの写真へのアクセスを制限するために、そのフォルダーにApacheディレクティブを追加しました。これにより、アクセスが正常に制限されました。src
その場合、属性をそのパスに設定しても、ブラウザに画像を表示できないという問題が発生しました。私の投稿を参照してください:https ://serverfault.com/questions/425974/apache-deny-access-to-images-folder-but-still-able-to-display-via-img-on-site
最後に、PHPを使用してサーバーから直接画像データを読み取り、このデータをブラウザーに送信する必要があることを学びました。サーバー上の画像ファイル(PNG)を文字列に変換するfile_get_contents()関数を使用しました。この文字列をajax呼び出しでブラウザに返します。私が取得できないのは 、JavaScriptを使用してこの文字列を画像に戻す方法です。
このコードを参照してください:
$.ajax({
url: get_image.php,
success: function(image_string){
//how to load this image string from file_get_contents to the browser??
}
});