簡體   English   中英

Laravel無法上傳存儲文件夾中的文件

[英]Laravel can't upload file in storage folder

我曾經將上傳文件(圖像)存儲在公用文件夾中,但是這次我想將其存儲在存儲文件夾中,但出現此錯誤

Can't write image data to path (C:\laragon\www\mynewsite\storage\images/aboutimage-1522481830.png)

錯誤來自此行(我在其中使用干預/圖像包)

Image::make($image)->resize(1200, 600)->save($location);

我的功能:

if ($request->hasFile('image')) {
        $image = $request->file('image');
        $filename = 'aboutimage' . '-' . time() . '.' . $image->getClientOriginalExtension();
        $location = storage_path('images/' . $filename);
        Image::make($image)->resize(1200, 600)->save($location);

        $oldFilename = $indexabout->image;
        $indexabout->image = $filename;
        Storage::delete($oldFilename);
}

任何想法?

UPDATE

我的文件將上傳到root/storage文件夾中,而不是root/storage/app/public/images

這是為什么?

更新2

我將函數更改為下面的代碼,並且在需要上傳的位置進行上傳,但it does not delete the old image

if ($request->hasFile('image')) {
            $image = $request->file('image');
            $filename = '/aboutimage' . '-' . time() . '.' . $image->getClientOriginalExtension();
            $location = storage_path('app/public/images' . $filename);
            Image::make($image)->resize(1200, 600)->save($location);

            $oldFilename = $indexabout->image;
            $indexabout->image = $filename;
            Storage::delete($oldFilename);
}

解決了

這是最終代碼:

if ($request->hasFile('image')) {
            $image = $request->file('image');
            $filename = 'aboutimage' . '-' . time() . '.' . $image->getClientOriginalExtension();
            $location = storage_path('app/public/images/' . $filename); // root storage path
            Image::make($image)->resize(1200, 600)->save($location);

            Storage::delete('images/' . $indexabout->image); //public storage path
            $indexabout->image = $filename;            
        }

基本上,我給了Root/Storage路徑來存儲數據,並給了Public/Storage路徑以在更新方法中刪除它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM