ajax - 在 Laravel 中使用 Ajax 上传图像。
问题描述
我必须使用 ajax 将数据插入数据库,现在它将数据插入数据库,但不上传图像。
ajax代码
$(document).on("click","#save", function(){
jQuery.ajax({
method :'post',
url:''+APP_URL+'/products/add_product',
data:$("#product_form").serialize(),
success: function(response){
$("#product_list").load("<?php echo url('products/tblproducts');?>").fadeIn("slow")
}
});
});
“product_form”是表单的 ID。
路线
Route::post('products/add_product','admin\ProductsController@add_new_product');
控制器功能
public function add_new_product(Request $request){
try{
DB::beginTransaction();
$product_image = NULL;
if ($request->hasFile('product_photo')){
$ext = $request->product_image->getClientOriginalExtension();
$product_image = uniqid().".".$ext;
$file = $request->file('product_image');
$destinationPath = public_path("products");
$file->move($destinationPath, $product_image);
}
$bdata['product_photo']=$product_image;
$bdata['product_name']= $request->item_name;
$bdata['product_barcode']= $request->barcode;
DB::table('tbl_products')->insert($bdata);
DB::commit();
$this->CreateMessages('add');
}catch(\Exception $v){
DB::rollback();
$this->CreateMessages('not_added');
throw $v;
}
}
解决方案
Try below code to upload image:
`$(document).on("click","#save", function(){
var fd = new FormData();
fd.append('product_photo',$('#id_of_image_uploader').prop('files')[0]);
fd.append('item_name', $('#id_of_item_name').val());
fd.append('barcode', $('#id_of_barcode').val());
jQuery.ajax({
method :'post',
url:''+APP_URL+'/products/add_product',
data: fd,
cache: false,
contentType: false,
processData: false,
success: function(response){
$("#product_list").load("<?php echo url('products/tblproducts');?>").fadeIn("slow")
}
});
});`
推荐阅读
- python - 加入列以创建新列并添加逗号,除非它们有逗号
- java - 微服务异步通信断路器
- mysql - Mysql中外键类型对性能的影响
- rust - 标准输出挂在闪烁的光标上
- javascript - 使用 .filter() 函数过滤嵌套数组
- jquery - 即使我可以看到数组,使用 JQuery/AJAX 的级联下拉菜单也会返回未定义的结果
- c# - 我的简单前卫在重复,我一遍又一遍地看着它……发生了什么?
- java - 字节好友 - java.lang.IllegalStateException:无法解析“”的类型描述 - KafkaProducer
- python-3.x - 如何使用 pandas DataFrame 以科学格式读取文本文件数据
- spring-boot - Spring Boot JPA 复合外键映射