javascript - Dropzone.js "Undefined index: file"如何与 Laravel 一起使用?

标签 javascript php laravel laravel-5 dropzone.js

我正在使用OctoberCMS ,基于Laravel .

我有一个用于上传文件的有效 HTML 表单。

<form class="dropzone" method="POST" action="/upload.php" enctype="multipart/form-data">

    <input type="hidden" name="_handler" value="onUpload" />

    <div class="fallback">
        <input type="file" name="file">
    </div>

    <input type="submit" value="Upload" />

</form>

降落区

我正在尝试添加 Dropzone.js到它。它说您只需将类添加到表单中即可。

来自 Dropzone 文档:
http://www.dropzonejs.com/#usage

可以像处理这样的 html 输入一样处理上传的文件:

<input type="file" name="file" />

这就是添加 Dropzone 之前我的表单类型和名称。

错误

但是当它到达我的 upload.php 中的这一行时,我收到错误:

$inputName = basename($_FILES['file']['name']);
$inputExtension = pathinfo($inputName, PATHINFO_EXTENSION);

错误:未定义索引:文件

但它以前可以在没有 Dropzone 的情况下使用相同的名称"file"。

拉拉维尔

如果使用以下内容,它将顺利通过:

$inputName = Input::file('file');

但现在我很难获取文件扩展名,因为它不再位于使用 Input::file 的变量中。

最佳答案

您可以在 Controller 中执行

$inputExtension = request('file')->extension();
$path = request('file')->path();
$file = $request->file('file');

更新

请将请求传递给您的 Controller 并重命名您的输入,以避免与 Laravel"file"混淆。

public function store(Request $request)
{
    $file = $request->file('image');
    $extension = $request->image->extension(); //or
    $originalExtension = $file->getClientOriginalExtension();

    $path = $request->image->path();
}

october CMS 是如何做到的

$extension = Input::file('file')->getClientOriginalExtension();
$name = Input::file('file')->getClientOriginalName();

所以关键是使用 getClientOriginalExtension();

关于javascript - Dropzone.js "Undefined index: file"如何与 Laravel 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42546215/

相关文章:

javascript - Jquery 获取两个 div 作为一个

javascript - 使用 Vue JS 的可重用文件组件

php - 我想在使用 JavaScript 和 PHP 键入时向用户建议一些数据。这怎么可能?

laravel - 如何向 laravel-passport 访问 token 添加自定义声明?

javascript - 如何在 Laravel Mix 生成的产品中包含缩小的 javascript 文件?

javascript - 如何从IP地址判断向量是否为公司?

javascript - 如何对ajaxterm(J) javascript心跳行为进行压力测试?

php - 将带有 HTML/CSS 内容的字符串中的字体大小加倍

php - MySQL 选择并计算日期范围 : Doesn't work crossing the month barrier

javascript - 在布局相关后将元素附加到 Ajax 列表