【问题标题】:Unprocessable Entity: 422 while uploading file Asynchronously using filepond in Laravel无法处理的实体:在 Laravel 中使用 filepond 异步上传文件时出现 422
【发布时间】:2021-03-03 20:43:56
【问题描述】:

我正在使用filepond 将我的文件上传到使用Laravel filepond Backend package 的服务器。

但是,在使用Filepond 异步上传文件时使用XMLHttpRequest。我注意到控制台中弹出以下错误。

获取 422(无法处理的实体) 控制台出错。

文件: Sopamo\LaravelFilepond\Http\Controllers\FilepondController.php

    public function upload(Request $request)
    {
        $input = $request->file(config('filepond.input_name')); // $input = null

下面是在upload方法中调试$request参数得到的值。

$request->files->parameters["filepond"]->test: false
$request->files->parameters["filepond"]->originalName: "originalFileName.pdf" //this is filename
$request->files->parameters["filepond"]->mimeType: "application/pdf"
$request->files->parameters["filepond"]->error: 0
$request->files->parameters["filepond"]->*SplFileInfo*pathName: "C:\xampp\tmp\php16E1.tmp"
$request->files->parameters["filepond"]->*SplFileInfo*fileName: "php16E1.tmp"

我的config\filepond.phpSopamo/Laravel Package config file 相同。

下面是我的配置:

FilePond.registerPlugin(
    FilePondPluginFileEncode
);

FilePond.create(document.querySelector('input[type="file"]'));

FilePond.setOptions({
    server: {
        url: '/filepond/api',
        process: '/process',
        revert: '/process',
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
    }
});

FilePond.parse(document.body);
<html lang="en">

<head>
    <link href="https://unpkg.com/filepond/dist/filepond.css" rel="stylesheet">
</head>
<body>
    <input type="file" name="filepond" required multiple>
    
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js"></script>
    <script src="https://unpkg.com/filepond/dist/filepond.js"></script>
    <script src="https://unpkg.com/filepond-plugin-file-validate-size/dist/filepond-plugin-file-validate-size.js"></script>
    <script src="https://unpkg.com/filepond-plugin-file-encode/dist/filepond-plugin-file-encode.js"></script>
    <script src="https://unpkg.com/jquery-filepond/filepond.jquery.js"></script>
</body>

</html>

文件: routes\web.php

Route::prefix('api')->group(function () {
  Route::post('/process', [FilepondController::class, 'upload'])->name('filepond.upload');
  Route::delete('/process', [FilepondController::class, 'delete'])->name('filepond.delete');
});

谢谢。

【问题讨论】:

    标签: php laravel file-upload xmlhttprequest filepond


    【解决方案1】:

    我通过将名称属性值添加到 file 到我的文件输入元素来解决它。从&lt;input type="file" name="filepond"&gt;&lt;input type="file" name="file"&gt;

    【讨论】:

      猜你喜欢
      • 2017-05-06
      • 2021-05-26
      • 1970-01-01
      • 2021-05-27
      • 2021-02-17
      • 2023-03-22
      • 2019-03-14
      • 1970-01-01
      相关资源
      最近更新 更多