【发布时间】:2020-04-28 18:53:28
【问题描述】:
嗨,我最近收到了这个错误。当我的函数想要上传一张关于产品的图片并将其添加到数据库时
由于未知错误,文件“2018-06-12-product.jpg”未上传。
我的功能:
public function store(Request $request)
{
$this->validate($request,[
'title'=>'required',
'brand_id'=>'required',
'category_id'=>'required',
'body'=>'required',
'price'=>'required|numeric',
'discount'=>'numeric|max:2',
'count'=>'required|numeric',
'image'=>'required|image|mimes:jpeg,png,jpg|max:3024',
],[
'title.required'=>'نامی برای محصول خود انتخاب کنید',
'brand_id.required'=>'برند محصول خود را انتخاب کنید',
'category_id.required'=>'دسته بندی محصول خود را مشخص کنید',
'body.required'=>'توضیحی برای محصول خود بنویسید',
'price.required'=>'مبلغی برای محصول خود معین کنید',
'price.numeric'=>'لطفا در وروردی مربوط به قیمت از عدد استفاده کنید',
'discount.numeric'=>'لطفا در وروردی مربوط به تخفیف از عدد استفاده کنید',
'discount.max'=>'تخفیف مد نظر شما مجاز نیست. نمی توانید از دو رقم بیشتر وارد کنید ',
'count.required'=>'مقدار موجود در انبار را مشخص کنید ',
'count.numeric'=>'مقدار موجود در انبار را با عدد مشخص کنید',
'image.required'=>'لطفا عکسی برای محصول خود انتخاب کنید',
'image.image'=>'فایل مورد نظر باید یکی از فرمت های تصویری باشد (jpeg,png,jpg)',
'image.mimes'=>'فایل مورد نظر باید یکی از فرمت های تصویری باشد (jpeg,png,jpg)',
]);
$file=$request['image'];
$imgname=$file->getClientOriginalName();
$this->ImageProductUploader($file,'/upload/product/large/');
$this->ImageProductThumbUploader($file,'/upload/product/thumb/');
$product=product::create([
'title'=>$request->title,
'brand_id'=>$request->brand,
'category_id'=>$request->category,
'body'=>$request->body,
'price'=>$request->price,
'discount'=>$request->discount,
'count'=>$request->count,
'image'=>$imgname,
'image_thumb'=>$imgname,
]);
$product->category()->sync($request->input('category'));
session()->flash('add_product','محصول جدید با موفقیت اضافه شد');
return back();
}
我的文件上传功能:
public function ImageProductUploader($file,$paths){
$filename=$file->getClientOriginalName();
$path=public_path($paths);
$files=$file->move($path,$filename);
$img=Image::make($files->getRealPath());
$img->resize(675,675,null, function ($constraint) {
$constraint->aspectRatio();
});
$img->save($path.$filename);
return $paths.$filename;
}
public function ImageProductThumbUploader($file,$paths){
$filename=$file->getClientOriginalName();
$path=public_path($paths);
$files=$file->move($path,$filename);
$img=Image::make($files->getRealPath());
$img->resize(175,175,null, function ($constraint) {
$constraint->aspectRatio();
});
$img->save($path.$filename);
return $paths.$filename;
}
和我的表格:
<form class="form-horizontal" action="{{route('product.store')}}" method="post" enctype="multipart/form-data">
{{csrf_field()}}
</form>
我总是使用此代码上传照片,但我不明白为什么会出现此错误
【问题讨论】:
-
使用除该图像之外的所有图像?
-
不,这只是一个例子......所有图像或任何类型的文件都有这个问题
标签: php laravel file laravel-5 upload