2017-04-23 3 views
0

ライブサーバーに初めてのlaravelアプリケーションを正常に配備しました。 /myproject_src/storage/app/public/myfolder1フォルダーにアップロードされている画像を表示できないことを除いて、すべての機能が優れています。共有ホスティングにlaravel格納イメージを表示

/myproject_src/

ここ

(パブリックフォルダを除く)すべてのlaravelソースファイルがある

/public_htmlの/ MYDOMAIN:ここ

はHostgatorの上で私のフォルダ階層であります.com/

ここでg OES公開ディレクトリのすべての私の内容

は、私は次のようにデータベースにファイルパスを格納しています:

public/myfolder1/FxEj1V1neYrc7CVUYjlcYZCUf4YnC84Z3cwaMjVX.png

このパスは、ストレージ/アプリにアップロードされた画像に関連付けられています/ public/myfolder1 /このフォルダにあり、store('public/myfolder1');のlaravelメソッドから生成されます。

私はimgタグで適切に画像を表示するために何をすべき:

<img src="{{ how to point to the uploaded image here }}"> 
+0

'' あなたはそれを試してみました

http://example.com/storage/image.jpg 

希望を使用していますか? – imrealashu

+0

@imrealashuはルートディレクトリを含むパス全体を出力します。 '/ home3/eisenheim/myproject_src/storage // public/myfolder1/FxEj1V1neYrc7CVUYjlcYZCUf4YnC 84Z3cwaMjVX.png' – Eisenheim

+0

これは私の答えを確認してください。私は一般的に私の共有ホスティングでそれを使用しています。 – imrealashu

答えて

1

さて、あなたは

<img src="{{ asset('public/myfolder1/image.jpg') }}" /> 
を使用して

php artisan storage:link 

とアクセスファイルを使用してシンボリックリンクを作成することができます

ただし、共有ホスティングを行っている場合はシンボリックリンクを作成できません。いくつかのアクセス制御ロジックの背後にあるいくつかのファイルを保護したい場合、イメージを読み込んで提供する特別なルートがあるという選択肢があります。例えば。

Route::get('storage/{filename}', function ($filename) 
{ 
    $path = storage_path($filename); 

    if (!File::exists($path)) { 
     abort(404); 
    } 

    $file = File::get($path); 
    $type = File::mimeType($path); 

    $response = Response::make($file, 200); 
    $response->header("Content-Type", $type); 

    return $response; 
}); 

これで、このようなファイルにアクセスできます。

http://example.com/storage/public/myfolder1/image.jpg 
<img src="{{ asset('storage/public/myfolder1/image.jpg') }} /> 

注:私は、柔軟性のためのDB内のパスを保存しないようにお勧めしたいです。ファイル名を保存して、コード内に次のことをしてください。

Route::get('storage/{filename}', function ($filename) 
{ 
    // Add folder path here instead of storing in the database. 
    $path = storage_path('public/myfolder1' . $filename); 

    if (!File::exists($path)) { 
     abort(404); 
    } 

    $file = File::get($path); 
    $type = File::mimeType($path); 

    $response = Response::make($file, 200); 
    $response->header("Content-Type", $type); 

    return $response; 
}); 

とアクセスそれが助け:)

関連する問題