我正在使用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/