Laravel Загрузка файлов - PullRequest
0 голосов
/ 14 апреля 2020

Я попробовал приведенный ниже код для загрузки файла в laravel, но он всегда go в false (это noimage.jpg). Ссылки и все уже связаны через ремесленника, но изображение, кажется, не достигает папки хранения. Ниже приведены мои коды для обработки файлов.

 public function store(Request $request)
    {
        $this->validate($request,[
            'title' => 'required',
            'body'=>'required', 
            'cover_image' => 'image|nullable|max:1999'

            ]);

            //Handle File pUpload
            if($request->hasFile('cover_image'))
            {
                //Get Filename with the Extension
                $filenameWithExt = $request->file('cover_image')->getClientOriginalName();
                //Get Just File Name
                $fileName = pathinfo($filenameWithExt,PATHINFO_FILENAME);
                //Get Just Extension
                $extension = $request->file('cover_image')->getClientOriginalExtension();
                //Filename to Store
                $fileNameToStore = $fileName.'_'.time().'.'.$extension;

                //upload of Image
                $path = $request->file('cover_image')->storeAs('public/cover_image',$fileNameToStore);
            } else {
                $fileNameToStore = 'noimage.jpg';
            }

            //Create Post
            $post = new Post;
            $post->title = $request->input('title');
            $post->body = $request->input('body');
            $post->user_id = auth()->user()->id;
            $post->cover_image = $fileNameToStore;
            $post->save();

            return redirect('/posts')->with('success','Post Created');
    }

С другой стороны, ниже приведен код для "Создать запись".


@extends('layouts.app')

@section('content')

<h1>Create Post</h1>

{!! Form::open(['action' => 'PostsController@store', 'POST','enctype' => 'multipart/form-data']) !!}
   <div class="form-group">
       {{Form::label('title','Title')}}
       {{Form::text('title', '', ['class' => 'form-control', 'placegholder' => 'Title'])}}
   </div>
   <div class="form-group">

    {{Form::label('body','Body')}}
    {{Form::textarea('body', '', ['class' => 'form-control', 'placegholder' => 'body'])}}
</div>
<div class="form-group">
    {{Form::file('cover-image')}}   
</div>

{{Form::submit('Submit', ['class'=>'btn btn-primary'])}}
{!! Form::close() !!}
@endsection

, но результат в базе данных такой .

enter image description here

Кто-нибудь знает, где я ошибся? Большое вам спасибо.

1 Ответ

0 голосов
/ 14 апреля 2020

Я могу поделиться с вами своей библиотекой при загрузке файлов

$file = $request->file('YOUR_FILE');

$ext = $file->getClientOriginalExtension()?: "txt";
$mime_type = $file->getMimeType()?:"plain/text";

$path_directory = "new_folder";

if (!File::exists(public_path($path_directory))){
    File::makeDirectory(public_path($path_directory), $mode = 0755, true, true);
}

$filename = Helper::create_filename($ext); //create_filename - Str:::random(6) or anything you want
$new_image_filename = $filename;
$file->move($path_directory, $filename); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...