• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

php upload zdjęć w laravelu

0 głosów
65 wizyt
pytanie zadane 17 listopada 2018 w PHP, Symfony, Zend przez Ziito Użytkownik (670 p.)
Heja, mam taki oto problem że nie mogę uploadować zdjęć na stronę. Przy uploadzie powinien stworzyć mi się folder z avatarami i w bazie powinien być link do tego zdjęcia, a nie mam żadnego linku i nie ma żadnego folderu. W modelu mam $table->string('avatar')->nullable(); i w bazie mam NULL w tabeli avatar, a kiedy usunę te nullable to wywala mi błąd. O co może chodzić?
komentarz 17 listopada 2018 przez Arkadiusz Waluk Ekspert (242,700 p.)
Pokaż kod odpowiedzialny za upload.
komentarz 17 listopada 2018 przez Ziito Użytkownik (670 p.)
$user = Auth::user();
        $user->name = $request->name;       <--update danych usera
        $user->email = $request->email;

        if ($request->hasFile('avatar'))      <--upload zdjęć 
        {
            $user_avatar_path = 'public/users/' . $id . '/avatars';
            $upload_path = $request->file('avatar')->store($user_avatar_path);
            $avatar_filename = str_replace($user_avatar_path . '/','', $upload_path);
            $user->avatar = $avatar_filename;
        }

        $user->save();

 

komentarz 17 listopada 2018 przez Ziito Użytkownik (670 p.)
wcześniej zmieniłem $request->file('avatar') na hasFile ale i tak nie działało więc nie wiem w czym różnica?

1 odpowiedź

0 głosów
odpowiedź 17 listopada 2018 przez Arkadiusz Waluk Ekspert (242,700 p.)
Jesteś pewien, że masz odpowiednio przygotowany formularz bądź inny sposób wysyłki i pole ma nazwę avatar? Prosty test: na końcu widocznego na fragmencie kodu warunku (za $user->avatar) wrzuć coś, aby to sprawdzić, np. dd($avatar_filename); Jeśli zamiast strony pojawi się małe okienko ze ścieżką to znaczy że się wykonuje i przy okazji możesz sprawdzić czy ścieżka jest prawidłowa. Jeśli nie to znaczy że hasFile się nie spełnia, czyli plik jakby się nie przesłał. Albo masz go wtedy pod inną nazwą w formularzu albo brakuje odpowiedniego enctype formularzowi albo nie wiem co, zależy jak go przesyłasz.
komentarz 17 listopada 2018 przez Ziito Użytkownik (670 p.)
w ifie dodałem to dd ($avatar_filename); i nic się nie dzieje tzn to co zawsze że strona sie przeładowuje za pomocą return back();  w polu na img wyświetla mi się jego nazwa obok guzika do uploadu a gdy klikam zapisz to się przeładowuje, nazwa pliku znika i tyle, koniec i nigdzie nic nie ma.
komentarz 17 listopada 2018 przez Arkadiusz Waluk Ekspert (242,700 p.)
Czyli nie wchodzi do tego warunku w ogóle. Masz zwykły formularz? Może pokaż jego kod, coś się musi źle wysyłać.
komentarz 17 listopada 2018 przez Ziito Użytkownik (670 p.)
<form method="POST" action="{{url('/users/' . $user->id)}}" enctype="mutlipart/form-data">
                        {{csrf_field()}}
                        {{method_field('PATCH')}}

                        <img src="">

                         <div class="row">
                            <div class="col-sm-10 col-sm-offset-1">
                                    <input type="file" name="avatar" class="form-control">
                            </div>
                        </div>

kod html formularza

komentarz 17 listopada 2018 przez Arkadiusz Waluk Ekspert (242,700 p.)

enctype to powinno być multipart/form-data, masz mutlipart :)

1
komentarz 17 listopada 2018 przez Ziito Użytkownik (670 p.)
działa haha XD a sprawdzałem to chyba ze 20 razy :) dzięki za pomoc, tak to jest jak człowiek zmęczony siada do kodu. W bazie już jest cały link.
komentarz 17 listopada 2018 przez Ziito Użytkownik (670 p.)

Trochę się pośpieszyłem z zachwytem bo teraz nie wyświetla się obrazek tzn jest ta miniaturka złamanego obrazka ale jak otwieram to w nowej karcie to mam 404 i tyle. to kod wyświetlania obrazka w formularzu:

 <img src="{{ asset('storage/users' . $user->id. '/avatars' . $user->avatar) }}" class="img-responsive">

 

komentarz 17 listopada 2018 przez Ziito Użytkownik (670 p.)
Znów pierdoła nie dodałem w dóch miejscach / XD . dobra nie ma co idę spać :)
komentarz 17 listopada 2018 przez Arkadiusz Waluk Ekspert (242,700 p.)
Czyli działa już wszystko? Czasem nie ma co się przemęczać, a podejść do tematu ze świeżym spojrzeniem :)
komentarz 17 listopada 2018 przez Ziito Użytkownik (670 p.)
Tak  tak już działa wszystko :) A jeszcze tak zapytam jak się zabrać za tworzenie kart przedmiotów na stronie? robię mały sklepik internetowy tak dla siebie samego żeby się pouczyć po prostu, z tym że nie wiem za dużo o relacjach one to many itd bo zwyczajnie tego nigdy nie robiłem i nie wiem jak się za to zabrać. Ogólnie rzecz biorąc chciałbym aby admin mógł dodawać nowe kategorię i subkategorię, obrazek opis i kategorię do karty produktu oraz aby w miejscu wyświetlania się obrazka produktu mógł również dodać drugi jeśli tego wymaga dana rzecz jak np: T-shirt i kiedy kliknie strzałkę do przewinięcia obrazka dodając nowy nadpisze ten aktualnie wybrany.
komentarz 17 listopada 2018 przez Arkadiusz Waluk Ekspert (242,700 p.)
Musisz sobie pomyśleć jak dokładnie ma to wyglądać. Jak masz problemy z wyobrażeniem sobie relacji możesz sobie je nawet narysować na kartce. Wszystkie kategorie umieściłbym w jednej tabeli. Subkategorie rozwiązał poprzez umieszczenie w niej kolumny w stylu parent_id - jeśli kategoria byłaby główną byłby tam null, gdyby miała jakiegoś rodzica (kategorię wyżej) to byłoby tu jej id. Jeśli produkt może mieć tylko jedną kategorię to wtedy wystarczy, że umieścisz w tabeli produktów pole category_id. Jeśli jednak może być ich wiele do jednego produktu to potrzebna będzie relacja wiele do wielu, czyli z tabelą pośrednią łączącą kategorie z produktami (prosta tabelka, nawet dwie kolumny wystarczą - id produktu i id kategorii).

Podobne pytania

0 głosów
0 odpowiedzi 122 wizyt
pytanie zadane 11 lutego 2018 w PHP, Symfony, Zend przez mi-20 Stary wyjadacz (10,070 p.)
0 głosów
0 odpowiedzi 97 wizyt
0 głosów
2 odpowiedzi 149 wizyt
pytanie zadane 5 marca 2017 w PHP, Symfony, Zend przez prymex Obywatel (1,050 p.)
Porady nie od parady
Forum posiada swój własny chat IRC, dzięki któremu będziesz mógł po prostu pogadać z innymi Pasjonatami lub zapytać o jakiś problem. Podstrona z chatem znajduje się w menu pod ikoną człowieka w dymku.IRC

61,378 zapytań

107,321 odpowiedzi

223,527 komentarzy

33,124 pasjonatów

Przeglądających: 328
Pasjonatów: 16 Gości: 312

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...