Laravel сохраняет изображение в хранилище

мой код работал нормально, но теперь это не так, поскольку изображение не сохраняется в папке, я пытаюсь сохранить изображение в папке хранения с идентификатором в качестве имени изображения.

Контроллер:

  if($request->hasFile('profile_pic')){
        if (Input::file('profile_pic')->isValid()) {
            $file = Input::file('profile_pic');
            $destination = 'storage/app/teachers'.'/';
            $ext= $file->getClientOriginalExtension();
            $mainFilename = $teacher->id.request()->$ext;
            $file->move($destination, $mainFilename.".".'jpg');
            echo "uploaded successfully";
        }

Просмотр, где 0000 - изображение по умолчанию.

<div class="row">
 <a href="#">  <img id="imgFileUpload" name="profile_pic" src={{asset('storage/app/teachers/'.'0000'.'.jpg')}} value="{{@$teacher->id}}"
   onerror="this.src='storage/app/teachers/0000.jpg';" data-toggle="tooltip" data-placement="top" title="click to upload image" class="profile_pic rspimg shadow-sm bg-white rounded" id="imgFileUpload"   data-toggle="tooltip" data-placement="top" title="Click To Upload image"></a>
     <div class=" col-md-10">
     <input type="file"  name="profile_pic" id="FileUpload1" style="display: none" />
     <span id="spnFilePath"></span>
     </div>
</div>

ajax: для предварительного просмотра изображения в браузере.

<script>
    $(document).ready(function(){
$(function () {
 alert(2);
    $("#FileUpload1").change(function () {
                var imgControlName = "#imgFileUpload";
                readURL(this, imgControlName);
        });
function readURL(input, imgControlName) {
                if (input.files && input.files[0]) {
                        var reader = new FileReader();
                        reader.onload = function (e) {
                                $(imgControlName).attr('src', e.target.result);
                        }
                        reader.readAsDataURL(input.files[0]);
                }
        }
        var fileupload = $("#FileUpload1");
        var image = $("#imgFileUpload");
        image.click(function () {
                fileupload.click();
        });

});
    });
</script>

person Fayakon    schedule 23.10.2019    source источник
comment
Что за ошибка?   -  person Steven    schedule 23.10.2019
comment
изображение не сохраняется.   -  person Fayakon    schedule 23.10.2019
comment
Возникают ли ошибки при загрузке изображения? Означает, что вы успешно загрузили эхо; в ответ?   -  person Akash Gadhiya    schedule 23.10.2019
comment
Я не получаю сообщения об ошибке на экране, это просто не сохраняется.   -  person Fayakon    schedule 23.10.2019


Ответы (2)


Вместо этого $ destination = 'хранилище / приложение / учителя'. '/';

попробуйте этот $ destination = storage_path (). '/app/teachers'.'/';

person Leo    schedule 23.10.2019

if ($request->hasFile('profile_pic')) {
            $image      = $request->file('profile_pic');
            $fileName   = time() . '.' . $image->getClientOriginalExtension();

            $img = Input::make($image->getRealPath());
            $img->resize(120, 120, function ($constraint) {
                $constraint->aspectRatio();                 
            });

            $img->stream(); // <-- Key point

            //dd();
            Storage::disk('local')->put('/app/teachers'.'/'.$fileName, $img, 'public');
}

Попробуй это

person iAmGroot    schedule 23.10.2019