【问题标题】:File is not being uploaded in Laravel文件未在 Laravel 中上传
【发布时间】:2021-07-08 11:14:04
【问题描述】:

这与我最近提出的一个问题非常相似,后来我已将其删除,但我对我现在面临的问题有了更好的了解,并且相信我可以提出更明确的问题。

我正在创建一个文件上传应用程序。我将其限制为仅 .dem 文件,这是非常罕见的。我添加了enctype="multipart/form-data" 来支持我的文件上传,并且我已经正确命名了所有内容。当我提交我的文件时,控制器似乎没有收到它。

这是我的代码:

刀片

<form action="{{ route('upload') }}" method="POST" enctype="multipart/form-data" class="form">
    @csrf
    <label for="demo" id="drop" class="drop">
         <p>Drag demos here <br>or <span style="color:#2b66cc;">browse</span></p>
    </label>
    <input id="demo" type="file" name="demo" multiple accept=".dem"></input>
    <div id="list" style="cursor:default;" class="ui animated list"></div>
    <button id="submit" class="ui primary fluid button" disabled type="submit">Upload</button><br>
</form>

路线

Route::post('/', 'App\Http\Controllers\UploadController@store')->name('upload');

控制器

class UploadController extends Controller
{
    public function store(Request $request)
    {

        dd($request->file());
        
    }
}

我在这里所做的只是尝试接收文件。

当我运行此代码并通过表单上传文件时,$request-file() 返回一个空数组。这向我表明,我的文件由于某些原因而从未真正到达控制器。

任何帮助将不胜感激。

【问题讨论】:

  • 我认为file 需要一个参数,它是输入的名称(在本例中为演示)。如果我没记错的话,你可以看到所有带有$request-&gt;files()的文件
  • 是的,我已经使用 file('demo') 对其进行了测试。它返回 null。
  • 当你使用dd查看$request的全部内容时会发生什么?如果文件不存在,那么您的表单应该有问题。 (也许&lt;/input&gt; 引起了问题。输入没有关闭标签)
  • 图片link。另外,我忘了删除结束标签,但不幸的是,这不是导致问题的原因。
  • 奇怪。也许是尺寸限制?您要上传的文件有多大?您是否尝试过上传没有accept 属性的内容,然后只选择一些随机图像或文本文件?

标签: php laravel


【解决方案1】:

&lt;input id="demo" type="file" name="demo[]" multiple accept=".dem"&gt;

当您在 INPUT 标记中上传多个文件时 INPUT 标签进入数组

【讨论】:

    猜你喜欢
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-08
    • 2014-04-19
    • 2013-08-11
    • 2013-11-03
    相关资源
    最近更新 更多