私は信じられないほど正常な作業でなければならないことに苦労しています。私はアップロードし、私のWebサーバーに画像を保存し、MySQLデータベース(これはすべて動作している)のファイルへのパスを保存します。動作しないことは、サーバーから画像ファイルを取得し、ajax経由でページに表示することです。ajax経由でサーバーからpng画像をブラウザに表示する方法
元々私はデータベースからパスを取得し、タグのsrc
属性を画像のパスで更新しようとしていました。これは機能していましたが、この方法では、すべての画像が、サーバー上のフォルダにあり、そこにはすべてのユーザーがアクセスできます。これは良くない。私はこれらのユーザーがアクセスできる特定のユーザーに属する画像しか持てません。
これらの写真へのアクセスを制限するために、そのフォルダにApacheディレクティブを追加しました。このディレクティブはアクセスを制限しました。問題は、そのパスにsrc
属性を設定することで、ブラウザに画像を表示できなくなったことになりました。私の記事を参照してください:https://serverfault.com/questions/425974/apache-deny-access-to-images-folder-but-still-able-to-display-via-img-on-site
最後に私は、サーバーから画像データを直接読み込み、このデータをブラウザに送るためにPHPを使用する必要があることを知りました。私はfile_get_contents()関数を使用しています。この関数は、サーバー上のイメージファイル(PNG)を文字列に変換します。この文字列をajax呼び出しでブラウザに返します。私が得ることができない事は:JavaScriptを使用してこの文字列を画像に変換する方法は?
は、このコードを参照してください:
$.ajax({
url: get_image.php,
success: function(image_string){
//how to load this image string from file_get_contents to the browser??
}
});
imgタグのsrc属性をjavascriptで更新してみませんか?イメージにマッピングされた整数値を受け付け、PHPスクリプトサーバー側でファイルの内容を返すようにすることができます。 – GordonM
イメージのsrcをPHPファイルにすることができます: 次に、PHPを使って画像を直接出力します。 –
.Netでは、パラメータを取り、コンテンツを返すリクエストハンドラを作成しますそれは通常の要求でした。同様に利用できるものがあるかどうかを知るために私はPHPに十分に精通していませんが、何かができると確信しています。基本的なコンセプトは、イメージ/背景イメージのCSSのURLを次のように設定することです:http://myserver.com/getfile.php?q = myimage.jpg'サーバーはファイルを開き、コンテンツを取得しますそれを通常のhttpレスポンスとして送信します。 – Shmiddty