在我的地方發展我使用的代碼如下所示,其中工程完美,laravel 5 - > getRealPath()doenst顯示正確的值
,但是當我上傳的網站,我的共享主機的一切,除了我的文件上傳工作得很好。我已經確定該問題涉及 ->getRealPath()
,當我dd();
,我得到這個路徑: /data/sites/web/christophvhbe/tmp
這並不在我的主機存在。但是我發現臨時圖像存儲在我的主機上,位於tmp/
位於:http://gyazo.com/e0199718324119109a4ff66321414e12。
如何將->getRealPath()
的值更改爲正確的值?
$fileName = time() . '-' . $request->file('foto')->getClientOriginalName();
$product->foto = $fileName;
$product->save();
$imagePath = '/images/producten/'. $fileName;
$image = Image::make($request->file('foto')->getRealPath())->fit(300)->save($imagePath);
我使用的是Image/intervention
包來上傳和存儲圖像。
你提出的是實際問題,public_path()和getRealPath根本不準確。 圖片文件夾的實際路徑是:www.christophvh.be/images/producten/img.png。但這不是它所說的,它試圖訪問一個臨時地圖。該圖像/干預用於臨時存儲我認爲的原始圖像。我知道正確的臨時地圖在哪裏,但我不知道如何訪問它,因爲它比我的www文件夾更高。顯示在我發佈在頂部的鏈接 – Christophvh
因此,如果我使用你的方法,我得到這個錯誤: NotWritableException in Image.php line 138: 無法將圖像數據寫入路徑(/ data/sites/web/christophvhbe/laravel /public/images/producten/1434939947-thosiba.png) – Christophvh
路徑和URL是完全不同的東西,你應該明白它們的區別。使用我的方法,你有正確的**路徑**。你現在遇到了一個不同的問題,那就是web服務器無法寫入'laravel/public/images'目錄。您可以使用'chmod'將其權限調整爲'777',或者如果您的主機允許使用ACL和/或chown,則可以以這種方式訪問Web服務器。如果您需要幫助,請諮詢您的主機 - 您可以做的事情因主機而異。如果您要運行Laravel,您還應該考慮下載共享主機。 – ceejayoz