我试图在用户点击提交时,用文件上传和用户文本的参数进行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');
}
}
这个问题有点牵强附会。这不是你的控制器给出了失败的响应。无论在终端发生了什么,都是在一个独立的请求中,错误就在那里。
另外--你的flash消息宣布上传成功了。之前 你的控制器向你的端点发布任何东西。
<?php
// ...
$request->session()->flash('message','Upload Successful.');
$response = Zttp::post("https://myendpoint.com/upload.php", [/* */]);
我建议你分析一下 $response
更为彻底,只有当响应代码为 2XX
.
任何关于该端点响应失败的调试都将依赖于更多的信息,包括响应本身,以及端点的性质。(这也是你的吗?第三方API?)