#laravel
Вопрос:
Я хочу сохранить pdf-файл в папке хранения, но когда я вставляю файл в свою форму и нажимаю на кнопку, она выводит мне сообщение об ошибке «Путь не может быть пустым». Однако путь не пуст. Вот моя функция, которая позволяет мне это сделать :
public function getFilenametostore(Request $request): string { $filenamewithextension = $request-gt;file('profile_pdf')-gt;getClientOriginalName(); $filename = pathinfo($filenamewithextension, PATHINFO_FILENAME); //get file extension $extension = $request-gt;file('profile_pdf')-gt;getClientOriginalExtension(); $time = time(); //filename to store $filenametostore = $filename . '_' . $time . '.' . $extension; //The problem is here $request-gt;file('profile_pdf')-gt;storeAs('profile_pdfs', $filenametostore); return $filenametostore; }
в хранилище есть: хранилище/приложение/общедоступное/profile_pdfs/
Моя Форма :
lt;form action="{{url('poste')}}" method="post" enctype="multipart/form-data"gt; @csrf lt;div class="mt-2"gt; lt;label class=" block text-sm text-gray-600" for="cus_email"gt;Uploadlt;/labelgt; lt;input class="px-2 py-2 text-gray-700 rounded" type="file" name="profile_pdf" id="exampleInputFile"gt; lt;/divgt; lt;div class="mt-4"gt; lt;button class="px-4 py-1 text-white font-light tracking-wider bg-gray-900 rounded" type="submit"gt;Publierlt;/buttongt; lt;/divgt; lt;/formgt;
Мой контроллер :
if($files = $request-gt;hasFile('profile_pdf')) { $filenametostore = $this-gt;getFilenametostore($request); $p = new Poste; $p-gt;pdf = $filenametostore; $p-gt;save(); return redirect()-gt;route('poste.index'); }
Комментарии:
1. пожалуйста, не могли бы вы вставить фрагмент кода вашей HTML-формы
2. Это та функция, которая выдает ошибку? или когда вы сохраняете свою модель? Я полагаю, вы добавили «путь», как это требуется при проверке? Добавьте код контроллера, который вызывает эту функцию и сохраняет модель.
3. Я изменил свой комментарий.
4. Я обнаружил проблему, это из-за функции putFileAs() в поставщике с $file — gt;getRealPath()