ajax - 如何在 Laravel 中读取 FormData 对象

标签 ajax laravel file laravel-5.4

我正在尝试将 ajax 表单提交给 Laravel 5 Controller 方法。我知道在 php 中,您可以定义一个 FormData 对象,将输入字段附加到该对象并将其发送到服务器,您现在可以使用输入字段名称提取值。

像这样:

var form_data = new FormData();
formdata.append('file_name', 'some_file_name_from_form.png');

form_data发送为 data在ajax调用中,我可以使用$_FILES['file_name']['name'];在PHP中获取文件.

所以我在 Laravel Controller 方法中尝试了同样的逻辑。我试图在 $request 中获取文件名对象,但只得到了空值。

我的 Controller 方法:
public function postImage(Request $request)
{
    $file = $request->get('file_name');

    dd($file);
}

但是当我dd整个请求,我看到了这个奇怪的对象:

array:1 [ "file_name" => UploadedFile {#199 -test: false -originalName: "work-fitness_00255959.png" -mimeType: "image/png" -size: 34215 -error: 0 #hashName: null path: "/tmp" filename: "phpVodsUg" basename: "phpVodsUg" pathname: "/tmp/phpVodsUg" extension: "" realPath: "/tmp/phpVodsUg" aTime: 2017-06-04 12:42:26 mTime: 2017-06-04 12:42:26 cTime: 2017-06-04 12:42:26 inode: 17573243 size: 34215 perms: 0100600 owner: 1000 group: 1000 type: "file" writable: true readable: true executable: false file: true dir: false link: false } ]



请问我如何获得通过FormData()发送的图像Ajax 中的对象通过它的名字?

谢谢你的帮助

最佳答案

你可以这样做。

// get the `UploadedFile` object
$file = $request->file('file_name');
$file = $request->file_name;

// get the original file name
$filename = $request->file('file_name')->getClientOriginalName();
$filename = $request->file_name->getClientOriginalName();

查看文档了解更多信息 https://laravel.com/docs/5.4/requests#retrieving-uploaded-files

上传文件可用的 api 方法 http://api.symfony.com/3.0/Symfony/Component/HttpFoundation/File/UploadedFile.html

关于ajax - 如何在 Laravel 中读取 FormData 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44354370/

相关文章:

multithreading - 多个文件描述符到同一个文件,C

java - 异常处理

c# - 从文件夹中查找文件

javascript - 使用 js/jquery/ajax 获取准确的 mysql 单元格内容

javascript - $.ajax() 不工作 [jquery]

javascript - 使用 AJAX/JSON 进行 PHP 验证

php - 尝试读取数组上的属性 "title"(错误异常)Laravel Php

php - Laravel Php 8.1 如何将枚举案例转换为数组以选择输入

Laravel - 从工作台/供应商包中读取文件

javascript - 检测ajax请求到正常请求 Node js