【问题标题】:Multiple files upload Laravel 5.8多个文件上传 Laravel 5.8
【发布时间】:2020-04-11 22:49:07
【问题描述】:

我想在 Laravel 中上传多个文件,但它不起作用我在我的控制器中尝试过 编辑:我的意思是页面刷新,但数据库中没有错误或注册数据 我关注了https://www.youtube.com/watch?v=wk5usyevYj0

public function storescan(Request $request){


          $this->validate($request,[
          'file' => 'required|file|mimes:gif,jpg,png,jpge,jpeg|max:102048'
        ]);


       $files=$request->file('file');
          foreach($files as $file){
            Document::create([
              'doc'=>$file->getClientOriginalName(),
              'path'=>$file->store('public/storage'),
              'support'=>$request->input('support'),
              'ecole'=>$request->input('ecole'),
              'jour'=>$request->input('jour'),
              'cycle'=>$request->input('cycle'),
              'type'=>'Image',
              'niveau'=>$request->input('niveau'),
              'matiere'=>$request->input('matiere'),
              'user_id'=>Auth::user()->id 
            ]);
          }  
        return redirect()->route('prof.document.create')->withMessage('✅ Image(s) ajoutée(s) avec succès!');

      }

这是我的路线和公式

 Route::post('/professeur/myDoccy/scan/create','DocumentController@storescan')->name('prof.document.createscan');

公式一切都正确我最小化了代码,只留下了输入文件

 <form enctype="multipart/form-data" class="form"  action="{{ route('prof.document.createscan') }}" method="POST">
           <input type="hidden" name="_token" value="{{ csrf_token() }}">
           {{ csrf_field() }}

 <label class="purple" >Charger l’image </label><br/>
            <input  required type="file" multiple name="file[]" accept='image/*' class="form-control-file border-or m-1" >
          </div>
</form>

【问题讨论】:

  • “但它不起作用”是什么意思?请更具体
  • 对不起,我的意思是页面刷新,但数据库中没有错误或注册数据

标签: laravel


【解决方案1】:

你应该检查 $errors 变量(阅读更多https://laravel.com/docs/5.8/validation)。

您的验证有问题。你有规矩

'file' => 'required|file|mimes:gif,jpg,png,jpge,jpeg|max:102048'

但它适用于单个文件。你有多个,所以应该是:

'file.*' => 'required|file|mimes:gif,jpg,png,jpge,jpeg|max:102048'

此外,您可以使用“图像”规则而不是包含所有 mime 的文件。

【讨论】:

  • 我从来没有尝试过这是我第一次知道这个非常感谢这是正确的答案
【解决方案2】:

我通过删除验证部分解决了这个问题 并添加到我的模型中的所有可填充属性,但仍然没有验证的可能性

class Document extends Model
{

    use SoftDeletes;

    public function user(){
        return $this->belongsTo('App\User');
    }

    protected $fillable = [
        'doc','support','ecole',
              'path',
              'jour',
              'cycle',
              'type',
              'niveau',
              'matiere',
              'user_id'
    ];
}

功能

public function storescan(Request $request){

       $files=$request->file('file');
          foreach($files as $file){
            Document::create([
              'doc'=>$file->getClientOriginalName(),
              'path'=>$file->store('public/storage'),
              'support'=>$request->input('support'),
              'ecole'=>$request->input('ecole'),
              'jour'=>$request->input('jour'),
              'cycle'=>$request->input('cycle'),
              'type'=>'Image',
              'niveau'=>$request->input('niveau'),
              'matiere'=>$request->input('matiere'),
              'user_id'=>Auth::user()->id 
            ]);
          }  
        return redirect()->route('prof.document.create')->withMessage('✅ Image(s) ajoutée(s) avec succès!');

      }

【讨论】:

    猜你喜欢
    • 2019-09-05
    • 2020-06-21
    • 2015-01-30
    • 2019-09-30
    • 2019-08-19
    • 2020-01-21
    • 1970-01-01
    • 1970-01-01
    • 2020-08-04
    相关资源
    最近更新 更多