私はLaravel 5.4
を学習していますが、今は画像をアップロードしてアップロード画像をhtml
に表示しようとしています。Laravel 5.4画像をアップロードしました
ファイルが正常にアップロードされたようですが、画像をHtml
に表示すると、画像に404エラーが表示され、何も表示されません。
これは私の設定とコードである:私は私のパブリックフォルダへのシンボルリンクを作っ
:
public function store(Request $request)
{
$this->validate($request, [
'name' => 'required|string|max:255',
'desc' => 'required|string',
'width' => 'required|numeric',
'height'=> 'required|numeric',
'artist'=> 'required|exists:artists,id',
'photo' => 'required|file'
]);
$artistInfo = Artist::find($request->artist);
$fileExtension = $request->file('photo')->extension();
$originalFileName = $request->file('photo')->getClientOriginalName();
$filePath = Storage::putFile('public', $request->file('photo'), 'public');
Photo::create([
'name' => $request->name,
'origName' => $originalFileName,
'url' => $filePath,
'artist_id' => $request->artist,
'desc' => $request->desc,
'width' => $request->width,
'height' => $request->height
]);
return $filePath;//this for test
}
そして、私のブレード:
@forelse($photos as $photo)
<tr>
<td>{{ $photo->name }}</td>
<td>
<img class="img" src="{{ asset('public/storage/' . $photo->url) }}" alt="{{ $photo->name }}" /></td>
<td>{{ $photo->artist->name . ' ' . $photo->artist->family }}</td>
<td>{{ $photo->desc }}</td>
<td>{{ $photo->width }}</td>
<td>{{ $photo->height }}</td>
<td class="text-center">
<a href="{{ route('artists.edit', ['id' => $photo->id]) }}">
<i class="material-icons">edit</i>
</a>
</td>
<td class="text-center">
<a href="{{ route('artists.edit', ['id' => $photo->id]) }}">
<i class="material-icons">assignment_turned_in</i>
</a>
</td>
</tr>
@empty
<tr>
<td>There's no photo Yet</td>
<td>—</td>
<td>—</td>
<td>—</td>
<td>—</td>
</tr>
@endforelse
NOTE php artisan storage:link
を使用し、symlinkはfiを動作させますこれらのマナー
<img class="img" src="{{ asset('public/storage/' . $photo->url) }}" alt="{{ $photo->name }}" /></td>
をしてみました::
<img class="img" src="{{ asset(storage_path() . ($photo->url)) }}" alt="{{ $photo->name }}" /></td>
<img class="img" src="{{ storage_path() . ($photo->url) }}" alt="{{ $photo->name }}" /></td>
$photo->url
は、例えば画像のファイル名を持つjDHPOTh7iejFABANSzasNbBWJ09DqLbqJb8ymJhv.png
あなたは私を聞かせてくださいだろうが、NE ...
私は、ブレードにこの行を変更しましたどの部分が私の問題か分かりますか?アドバンスに感謝
UPDATE:
私はPhpStorm
IDEを使用して、私は私のプロジェクトに私のパブリックフォルダをダウンロード-or this-私のシンボルリンクを同期するときにしていますパブリックフォルダの一覧に表示されません。
これは私のパブリッシュのls
ですICフォルダ: AFTER
そして、これが私のphpStormプロジェクトビューであるが、私のホストにパブリックフォルダの新しいコピーをダウンロード:
そしてノートとして: 私はこのウェブサイトを最初に開発し始めました。その後、プロジェクト全体を私のLinuxに移しましたrサーバをemote ...
'{{asset {'public /') '/'}を試しました。 $ photo-> url}} '? – linktoahref
@linktoahrefうん、しかしうまくいかなかった...! – Kiyarash
これは、生成されたIDを使用してパスを取得しようとしていると思われます。{{storage_path($ photo-> url)}} ' – linktoahref