在laravel上上传图片无法在线使用

时间:2019-12-09 09:02:42

标签: laravel image upload public

我完成了我的项目,当我将其上传到在线服务器时,它们不允许您更改根地图,因此我使用.htaccess文件直接访问公共地图,但是当我提交表单时,我无法上传后打开图像,我在目录中找不到它,这是我的控制器代码

if ($request->hasFile('image')) {
            $filenameWithExt = $request->file('image')->getClientOriginalExtension();
            $filename = pathinfo($filenameWithExt, PATHINFO_FILENAME);
            $extension = $request->file('image')->getClientOriginalExtension();
            $fileNameToStore = $filename . '_' . time() . '.' . $extension;
            $request->file('image')->storeAs('public/images', $fileNameToStore);
        } else {
            $fileNameToStore = 'noimage.jpg';
        }

这是要上传的HTML

<div class="form-group">
    <label>Upload foto's</label>
       <div class="custom-file">
           <input type="file" name="image" class="custom-file-input" id="inputGroupFile01" aria-describedby="inputGroupFileAddon01" multiple>
           <label class="custom-file-label" for="inputGroupFile01">Selecteer bestanden</label>
     </div>
</div>

这是我要显示或下载的HTML

<tr>
   <th>Foto's</th>
        @if( $retour->images === 'noimage.jpg')
           <td>Geen foto beschikbaar</td>
        @else
           <td><a download="retourmelding_{{$retour->firmaname}}"
               href="/storage/images/{{$retour->images}}" title="Foto">
               <img alt="Foto" src="/storage/images/{{$retour->images}}">
               </a>
           </td>
        @endif
</tr>

这在本地非常有效,但是在网上却不行,请帮忙

1 个答案:

答案 0 :(得分:1)

当您提取上面在href中指定的文件时。在本地工作,因为您的本地计算机可以在href中呈现/ storage文件夹路径,但是在实时服务器中,您需要这样指定:

{{ URL::to('/') }}/images/stackoverflow.png

现在签出此解决方案:

通过以下命令链接您的存储文件夹:

php artisan storage:link 

像这样从刀片文件访问文件:


<td>
<a download="retourmelding_{{$retour->firmaname}}" href="{{ URL::to('/') }}/public/storage/images/{{$retour->images}}" title="Foto">
<img alt="Foto" src="{{ URL::to('/') }}/public/storage/images/{{$retour->images}}"></a>
</td>