Php 使用laravel上载不同类型的文件
我已经尝试加载文件好几天了,但都没有成功。 如果我填写表格并单击提交,请保留此错误:哎哟!您的输入有一些问题。内容必须是以下类型的文件:jpeg、png、jpg、zip、pdf。 请帮我找出我的错误。 这是我的密码: 我的看法是:Php 使用laravel上载不同类型的文件,php,Php,我已经尝试加载文件好几天了,但都没有成功。 如果我填写表格并单击提交,请保留此错误:哎哟!您的输入有一些问题。内容必须是以下类型的文件:jpeg、png、jpg、zip、pdf。 请帮我找出我的错误。 这是我的密码: 我的看法是: <form action="{{ route('course_element.store') }}" method="POST"> @csrf
<form action="{{ route('course_element.store') }}" method="POST">
@csrf
<div class="form-group">
<label for="index">Index:</label>
<input type="text" name="index" class="form-control" placeholder="Index">
</div>
<input type = "hidden" id = "course_id" value="{{ $course->id }}" name= "course_id">
<div class="form-group">
<label for="format">Format</label>
<select class="form-control" name="format" id="format">
<option>Text</option>
<option>Image</option>
<option>Audio</option>
<option>Video</option>
</select>
</div>
<div class="form-group">
<label for="purpose">Ojectif</label>
<select class="form-control" name="purpose" id="purpose">
<option>Vocabulaire</option>
<option>Grammaire</option>
<option>Conjugaison</option>
<option>Prononciation</option>
<option>idioms</option>
</select>
</div>
<div class="form-group">
<label for="contenu">Contenu</label>
<input type="file" class="form-control-file" name="contenu" id="contenu" placeholder="Contenu" aria-describedby="fileHelpId" enctype="multipart/form-data">
<small id="fileHelpId" class="form-text text-muted">Help text</small>
</div>
<div class="form-group">
<textarea class="form-control" name="content" id="content" rows="3" placeholder="Contenu"></textarea>
</div>
<div class="col-xs-12 col-sm-12 col-md-12 text-center">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</form>
“内容”字段必须包含pdf、视频、docx、图像等。这是我的控制器:
public function store(Request $request)
{
$course = $request->input('course_id');
$courses = Course::all();
$request->validate([
'index'=>'required',
'format'=>'required',
'purpose'=>'required',
'contenu'=>'nullable|required|mimes: jpeg, png, jpg, zip, pdf | max: 2048',
'content'=>'required',
'course_id'=>'required'
]);
Course_element::create($request->all());
$fileName = time().'.'.$request->file->extension();
$request->file->move(public_path('storage/'), $fileName);
return redirect()->route('course.show')
->with('success','course element created successfully.')
->with('contenu',$fileName);
}
public function show(Course_element $course_element)
{
//
$courses = Course::all();
return view ('course_element.show', compact('course_element', 'courses'));
}
迁移:
public function up()
{
Schema::create('course_element', function (Blueprint $table) {
$table->increments('id');
$table->integer('index');
$table->string('format');
$table->string('purpose');
$table->string('contenu');
$table->string('content');
$table->unsignedInteger('course_id')->nullable();
$table->foreign('course_id')->references('id')->on('course')->onDelete('cascade')->onUpdate('cascade');
$table->softDeletes();
$table->timestamps();
});
}
提前感谢您的帮助嘿,据我所知,您必须将属性“enctype”添加到表单标记中,而不是输入。我试图通过将enctype添加到表单标记中来更正它,但仍然收到相同的错误!我可以通过删除像这样的空格来纠正这个错误:contenu=>'nullable | required | mimes:jpeg,png,jpg,zip,pdf | max:2048'而不是contenu'=>'nullable | required | mimes:jpeg,png,jpg,zip,pdf | max:2048'。但是我得到了另一个错误:对Null的成员函数extension()的调用我能够解决这个问题,这是必须的:$fileName=time()。$request->file('contenu')->extension()$请求->文件('contenu')->移动(公共路径('storage/'),$fileName);而不是:$fileName=time()。$request->file->extension()$请求->文件->移动(公共路径('storage/'),$fileName);谢谢你的帮助嘿,据我所知,你必须将属性“enctype”添加到表单标记中,而不是输入。我试图通过将enctype添加到表单标记中来更正它,但仍然收到相同的错误!我可以通过删除像这样的空格来纠正这个错误:contenu=>'nullable | required | mimes:jpeg,png,jpg,zip,pdf | max:2048'而不是contenu'=>'nullable | required | mimes:jpeg,png,jpg,zip,pdf | max:2048'。但是我得到了另一个错误:对Null的成员函数extension()的调用我能够解决这个问题,这是必须的:$fileName=time()。$request->file('contenu')->extension()$请求->文件('contenu')->移动(公共路径('storage/'),$fileName);而不是:$fileName=time()。$request->file->extension()$请求->文件->移动(公共路径('storage/'),$fileName);谢谢你的帮助
public function up()
{
Schema::create('course_element', function (Blueprint $table) {
$table->increments('id');
$table->integer('index');
$table->string('format');
$table->string('purpose');
$table->string('contenu');
$table->string('content');
$table->unsignedInteger('course_id')->nullable();
$table->foreign('course_id')->references('id')->on('course')->onDelete('cascade')->onUpdate('cascade');
$table->softDeletes();
$table->timestamps();
});
}