为什么我的控制器通过我的端点给我一个失败的响应?

问题描述 投票:0回答:1

我试图在用户点击提交时,用文件上传和用户文本的参数进行POST请求。 然而,我一直通过端点得到一个失败的响应。dd(); (这是从我收到的API端点传来的),尽管我得到了flash定义的文件上传成功的消息,但由于某些原因。 我在控制器中做错了什么?

<?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');
    }
}
php laravel debugging post
1个回答
0
投票

这个问题有点牵强附会。这不是你的控制器给出了失败的响应。无论在终端发生了什么,都是在一个独立的请求中,错误就在那里。

另外--你的flash消息宣布上传成功了。之前 你的控制器向你的端点发布任何东西。

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

我建议你分析一下 $response 更为彻底,只有当响应代码为 2XX.

任何关于该端点响应失败的调试都将依赖于更多的信息,包括响应本身,以及端点的性质。(这也是你的吗?第三方API?)

© www.soinside.com 2019 - 2024. All rights reserved.