Na moim lokalnego rozwoju używam poniższy kod, który działa idealnie,laravel 5 -> getRealPath() doenst pokaz prawidłowa wartość
ale kiedy przesłanych witrynę do mojego dzielonego hostingu wszystko działało w porządku z wyjątkiem mojego przesłanie pliku . I już ustalone, że problem jest z udziałem ->getRealPath()
, kiedy dd();
że dostanę tę ścieżkę: /data/sites/web/christophvhbe/tmp
Które nie istnieje na moim hostingu. Ale znalazłem, gdzie tymczasowe obrazy są przechowywane na moim hosting, który jest w tmp/
znajduje się tutaj: http://gyazo.com/e0199718324119109a4ff66321414e12.
Jak zmienić wartość ->getRealPath()
na prawidłową?
$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);
Używam pakietu Image/intervention
do przesyłania i przechowywania zdjęć.
to, co sugerujesz, to prawdziwy problem, public_path() i getRealPath nie są dokładne. rzeczywistą ścieżką do folderu z obrazami jest: www.christophvh.be/images/producten/img.png. Ale to nie jest to, co mówi, próbuje uzyskać dostęp do tymczasowej mapy. który obraz/interwencja używa do tymczasowego przechowywania oryginalnego obrazu, który myślę. Wiem, gdzie jest właściwa mapa tymczasowa, ale nie wiem, jak uzyskać do niej dostęp, ponieważ jest ona wyższa niż mój folder www. pokazany w linku, który opublikowałem na górze – Christophvh
Więc jeśli używam twojej metody, otrzymuję ten błąd: NotWritableException w Image.php linii 138: Nie można zapisać danych obrazu do ścieżki (/ data/sites/web/christophvhbe/laravel /public/images/producten/1434939947-thosiba.png) – Christophvh
Ścieżka i adres URL to zupełnie inne rzeczy i powinieneś zrozumieć różnicę. Używając mojej metody, masz poprawną ** ścieżkę **. Pojawia się teraz inny problem, ponieważ serwer internetowy nie może pisać w katalogu 'laravel/public/images'. Możesz dostosować jego uprawnienia do '777' za pomocą' chmod', lub jeśli twój host zezwala na używanie list ACL i/lub 'chown' możesz dać dostęp do serwera w ten sposób. Skonsultuj się z twoim hostem, jeśli potrzebujesz pomocy - to, co możesz zrobić, zależy od hosta. Powinieneś także rozważyć rezygnację z dzielonego hostingu, jeśli zamierzasz uruchomić Laravel. – ceejayoz