В Laravel я пытаюсь загрузить изображение продукта, а также спецификацию продукта в формате PDF.При загрузке только одного изображения, которое работает, когда я загружаю PDF, оно переопределяет изображение.Я предполагаю, что я просто называю что-то не так в моем контроллере.
Вот код для представления:
{!! Form::open(['route' => 'rentals.store', 'files' => true]) !!}
<fieldset>
<div class="formrow">
<div class="formitem col1of2">
{{ form::label('product_image', 'Upload Image', ['class' => 'label']) }}
{{ form::file('product_image') }}
</div>
</div>
<div class="formrow">
<div class="formitem col1of2">
{{ form::label('spec_sheet', 'Upload Spec Sheet', ['class' => 'label']) }}
{{ form::file('spec_sheet') }}
</div>
</div>
<div class="formrow">
<div class="formitem col1of2">
{{ Form::label('title', 'Title', ['class' => 'label']) }}
{{ Form::text('title') }}
</div>
</div>
<div class="formrow">
<div class="formitem col1of2">
{{ Form::label('name', 'Name', ['class' => 'label']) }}
{{ Form::text('name') }}
</div>
</div>
<div class="formrow">
<div class="formitem">
{{ Form::label('description', 'Descritption', ['class' => 'label']) }}
{{ Form::textarea('description')}}
</div>
</div>
</fieldset>
<div class="buttons">
<div class="back">
<button type="submit" class="primary button">Create Rental</button>
</div>
</div>
{!! Form::close() !!}
А вот код в контроллере для создания каждого элемента:
public function store(Request $request)
{
// validate the data coming in
$this->validate($request, array(
'title'=>'required|max:255',
'name'=>'required|max:255',
'description'=>'required',
'product_image'=>'image|nullable|max:1999',
'spec_sheet'=>'mimes:pdf|max:10000',
));
//store data in the data base
//Image Upload
if($request->hasFile('product_image')) {
//Get file name and extension
$filenameWithExt = $request->file('product_image')->getClientOriginalName();
//Get just file name
$filename = pathinfo($filenameWithExt, PATHINFO_FILENAME);
//Get Ext
$extension = $request->file('product_image')->getClientOriginalExtension();
//Store file name
$fileNameToStore = $filename. '.' .$extension;
//Upload
$path = $request->file('product_image')->storeAs('public/rentals', $fileNameToStore);
}
//PDF Upload
if($request->hasFile('spec_sheet')) {
//Get file name and extension
$filenameWithExt = $request->file('spec_sheet')->getClientOriginalName();
//Get just file name
$filename = pathinfo($filenameWithExt, PATHINFO_FILENAME);
//Get Ext
$extension = $request->file('spec_sheet')->getClientOriginalExtension();
//Store file name
$fileNameToStore = $filename. '.' .$extension;
//Upload
$path = $request->file('spec_sheet')->storeAs('public/mcelroy-specs', $fileNameToStore);
}
$rental = new Rental;
$rental->title = $request->title;
$rental->name = $request->name;
$rental->description = $request->description;
$rental->product_image = $fileNameToStore;
$rental->spec_sheet = $fileNameToStore;
$rental->save();
Session::flash('success', 'The item was successfully save!');
return redirect()->route('rentals.show', $rental->id);
}