Почему мой контроллер дает мне неудачный ответ через мою конечную точку? - PullRequest
0 голосов
/ 22 апреля 2020

Я пытаюсь сделать POST-запрос с параметрами с точки зрения загрузки файла и пользовательского текста после нажатия кнопки «Отправить». Однако по какой-то причине я продолжаю получать неудавшийся ответ через dd(); (который приходит от полученной конечной точки API), даже несмотря на то, что я получаю сообщение об успешной загрузке файла, определенное fla sh. Что я делаю не так в моем контроллере?

<?php

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Zttp\Zttp;

class FileUploadController extends Controller {
    public function index(){
        return view('view/index');
    }

    public function uploadFile(Request $request) {
        $userText = $request->input('userText'); // grabbing text area input that user inputs

        if ($request->input('submit') != null ){

            $file = $request->file('file'); // file user wants to upload

            // File Details
            $filename = $file->getClientOriginalName();
            $extension = $file->getClientOriginalExtension();
            $fileSize = $file->getSize();

            // Valid File Extensions
            $valid_extension = ["jpg", "jpeg", "png", "bmp"];

            // 10MB in Bytes
            $maxFileSize = 10485760;

            // Check file extension
            if(in_array(strtolower($extension),$valid_extension)) {
                // Check file size
                if($fileSize <= $maxFileSize){
                    $request->session()->flash('message','Upload Successful.');
                    $response = Zttp::post("https://myendpoint.com/upload.php", [
                        'one' => 'some text',
                        'two', 'some other text',
                        'three' => $filename,
                        'four' => $userText
                    ]);

                    $responseJson = $response->json(); // parses json response into an array for you
                    dd($responseJson);
                } else {
                    $request->session()->flash('message','File too large. File must be less than 2MB.');
                }

            } else {
                $request->session()->flash('message','Invalid File Extension.');
            }
        }
        // Redirect to index
        return redirect()->action('FileUploadController@index');
    }
}

1 Ответ

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

Вопрос немного о красной селедке. Это не твой контроллер, который дает неудачный ответ. Все, что происходит в конечной точке, находится в отдельном запросе, и ошибка существует там.

Дополнительно - ваше сообщение fla sh объявляет загрузку успешной до того, как ваш контроллер отправит что-либо в вашу конечную точку .

<?php
// ...
$request->session()->flash('message','Upload Successful.');
$response = Zttp::post("https://myendpoint.com/upload.php", [/* */]);

Рекомендую вам проанализировать $response более тщательно и установить сообщение fla sh, только если код ответа 2XX.

Любая отладка: неудача Ответ в этой конечной точке будет опираться на дополнительную информацию, включая сам ответ и природу конечной точки. (Это тоже ваш? Сторонний API?)

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