php - 无法处理的实体:在 Laravel 中使用 filepond 异步上传文件时出现 422
问题描述
我正在使用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
下面是调试方法中的$request
参数得到的值upload
。
$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"
Myconfig\filepond.php
与Sopamo/Laravel 包配置文件相同。
下面是我的配置:
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');
});
谢谢你。
解决方案
file
我通过向我的文件输入元素添加名称属性值来解决它。从<input type="file" name="filepond">
到<input type="file" name="file">
。
推荐阅读
- azure - 如何传入 CosmosDBTrigger 的存储帐户连接字符串?
- openshift - Openshift 远程命令执行 (exec)
- vue.js - 如何在 vuetify 中正确使用 select?
- java - Volley 缓存在 android recycler 视图中创建重复视图
- delphi - 为什么我不能在为它们分配动作后使用工具按钮?
- django - 如何使用 Apache 和 Daphne 部署 django 频道?
- composer-php - 无法在 Windows 10 的 xampp php 7.3.9 中安装作曲家
- php - 未显示完整日历的事件
- docker - Cloudwatch 仅记录部署更新
- python - 当 sudo 没有权限时读/写进程内存