【问题标题】:Upload array of files Laravel上传文件数组 Laravel
【发布时间】:2020-02-06 23:51:16
【问题描述】:

我想在 Laravel 中上传一组文件,但我不确定文件的路径和存储对象。现在存储了八个数据,但在我的情况下,路径是#。在下图中,我有从前面发送的数据(Vuejs,我正在使用 vue-upload-component)

$fileName = [];

foreach($request->input('files') as $files){
       $contractFile = new ContractFile();
       $contractFile->fill([
           'contract_id'   => $contract->id,
           'name'          => $files['name'],
           'path'          => '#',
       ])->save();
}

合同文件

class ContractFile extends Model
{
    protected $fillable = ['path','contract_id','name'];

    public function contract()
    {
        return $this->belongsTo(Contract::class);
    }

}

合同文件数据库

    Schema::create('contract_files', function (Blueprint $table) {
    $table->bigIncrements('id');
    $table->integer('contract_id');
    $table->string('path');
    $table->string('name');
    $table->timestamps();
});

filesystems.php

'uploads' =>[
    'driver' => 'local',
    'root' => storage_path().'file/uploads',
],

【问题讨论】:

    标签: laravel vue.js


    【解决方案1】:

    你可以使用

    foreach($request->file('files') as $uploadedFile){
    
          $filename = time() . '_' . $uploadedFile->getClientOriginalName();
    
           $path = $uploadedFile->store($filename, 'uploads');
    
           $contractFile = new ContractFile();
           $contractFile->contract_id = $contract->id;
           $contractFile->name = $uploadedFile->getClientOriginalName();
           $contractFile->path = $path;
           $contractFile->save();
    
    }
    

    默认情况下,公共磁盘使用本地驱动程序并存储这些 storage/app/public 中的文件。为了使它们可以从 Web 访问,您 应该创建一个从公共/存储到的符号链接 存储/应用/公共。

    要创建symbolic link您应该使用 storage:link Artisan 命令:

    php artisan storage:link
    

    【讨论】:

    • 谢谢,但我明白了。调用数组上的成员函数 getClientOriginalName()
    • 你能转储($request->input('files')) 吗??
    • 你试过 $request->files 而不是 $request->input('files')
    • 现在没有错误,但是数据没有存储,db中的数据也没有。
    • 请添加您的 contractFile 表架构和 ContractFile 模型
    猜你喜欢
    • 2014-01-15
    • 1970-01-01
    • 1970-01-01
    • 2018-04-13
    • 2021-12-18
    • 2013-07-22
    • 2013-04-06
    • 2015-03-21
    • 2017-02-23
    相关资源
    最近更新 更多