Почему я получаю исключение MethodNotAllowedHttpException с Laravel5.4 при загрузке файлов размером более 1 МБ в Интернете, но оно отлично работает на локальном хосте? - PullRequest
0 голосов
/ 22 апреля 2019

Я использую Laravel 5.4 для своего веб-сайта, и у меня возникает проблема, когда пользователь пытается загрузить файлы размером более 1 МБ.Эта проблема не появляется на локальном хосте.Я получаю сообщение об ошибке, которое никак не связано с размером файла, но это исключение MethodNotAllowedHttpException в строке 251. RouteCollection.php. Я использую метод для загрузки файлов: «PUT».

Я пробовал$ request-> файл ( 'postpic') -> storeAs ( '/ государственные / post_pic /', $ filenametostore);»и "Storage :: putFileAs ('public / post_pic', $ request-> file ('postpic'), $ filenametostore);"но ни один из них не работал онлайн для файлов размером более 1 МБ.Я также проверил опции php на cpanel, и они настроены на прием файлов размером 50 МБ (max_file_size), memory_limit 768 МБ, post_max_size 128 МБ.Я также связался с хост-сервером, и после открытия заявки, чтобы узнать, что не так, я получил ответ, что есть программная ошибка и конфигурация сервера в порядке.Я потратил два дня на поиск онлайн-решения, но не получил хороших результатов по этой теме, поэтому я задаю этот вопрос здесь, и я был бы очень признателен за любую поддержку для его решения.Наконец, я заметил, что когда я загружаю тот же файл размером 9 МБ в автономном режиме по сравнению с онлайн: глядя на вкладку «Сеть» в браузере, я могу обнаружить, что были обновления об идентификаторе пользователя и идентификаторе файла при загрузке этого файла в автономном режиме, но онлайн, сеть зависает на некоторое время без каких-либо обновлений, затем появляется страница с ошибкой.При использовании файла меньшего размера (менее 1,2 МБ) все работает нормально в сети и в автономном режиме.

Мой маршрут:

Route::PUT('/post/{id}/store',[
    'as' => 'storepost',
    'uses' => 'PostsController@store'
]);

Моя функция контроллера:

public function store(Request $request, $id, loggeduser $lu)
    {
        $this->validate($request,[
            'body'=>'required',
            'postpic'=>'nullable|max:40000'
        ]);

        $profile=profile::find($id);
        $isvideo=0;

        if($request->hasfile('postpic')){

            $filenamewithext=$request->file('postpic')->getClientOriginalName();
            $filename=pathinfo($filenamewithext,PATHINFO_FILENAME);
            $extension=$request->file('postpic')->getClientOriginalExtension();
            $filenametostore='1_'.$filename.'_'.time().'.'.$extension;
            $orgimage = Storage::disk('local')->putFileAs('public/post_pic', $request->file('postpic'), $filenametostore);

            if(substr($request->file('postpic')->getMimeType(), 0, 5) == 'image') {
                //Resize image here

                $imagepath = public_path('storage/post_pic/'.$filenametostore);
                $img = Image::make($imagepath)->resize(700, 400, function($constraint) {
                    $constraint->aspectRatio();
                });
                $img->save($imagepath);

            }elseif(substr($request->file('postpic')->getMimeType(), 0, 5) == 'video') {
                //it's a video                    
                $isvideo=1;
            }
        }else{
            //there is no photo
            $filenametostore='0';
        }

        $logged_user_id=$lu->userid;
        $post=new post();
        $post->post_pic=$filenametostore;
        $post->isvideo = $isvideo;
        $post->body=$request->input('body');
        $post->user_id=$logged_user_id;
        $post->profile_id=$id;
        $post->save();

        return redirect('/profile/'.$id)->with('success','Your story is alive..');


    }

Файл лезвия:

{!!Form::open(['action'=>['PostsController@store','id'=>$profile->id],'method'=>'PUT','enctype'=>'multipart/form-data','files'=>true])!!}

{!! csrf_field() !!}

<input id="postpic" type="file" name="postpic" class="btn btn-primary" style="width:100%;"/>

{{Form::textarea('body','',['class'=>'form-control','required','placeholder'=>'Post a story on your profile..'])}}

{{Form::submit('Post',['class'=>'btn btn-success'])}}

{!!Form::close()!!}

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...