【发布时间】:2019-05-28 22:34:15
【问题描述】:
查看:
$("#submit").on('click',function(e){
e.preventDefault();
product_name = $("#product_name").val();
category = $("#category").val();
var formData = new FormData();
$.each($("#product_image"), function (i, obj) {
$.each(obj.files, function (j, file) {
formData.append('product_image[' + i + ']', file);
});
});
formData.append('product_name', product_name);
formData.append('category', category);
$.ajax({
type:"POST",
data:formData,
processData: false,
contentType: false,
url:"<?php echo base_url(); ?>admin/products",
success:function(data){
alert(data);
}
});
});
控制器:
public function products()
{
$dataInfo = array();
$files = $_FILES;
$cpt = count($_FILES['product_image']['name']);
for($i=0; $i<$cpt; $i++)
{
$_FILES['product_image']['name']= $files['product_image']['name'][$i];
$_FILES['product_image']['type']= $files['product_image']['type'][$i];
$_FILES['product_image']['tmp_name']= $files['product_image']['tmp_name'][$i];
$_FILES['product_image']['error']= $files['product_image']['error'][$i];
$_FILES['product_image']['size']= $files['product_image']['size'][$i];
$this->upload->initialize($this->set_upload_options());
$this->upload->do_upload();
$dataInfo[] = $this->upload->data();
}
$data = array(
'product_name' => $this->input->post('product_name'),
'category' => $this->input->post('category'),
'product_image' => implode(",",array_column($dataInfo, 'product_image'))
);
$sql = $this->db->insert('add_product',$data);
if($sql == true)
{
echo 'New Product Added';
}
else
{
echo 'Unable to Proceed!';
}
}
private function set_upload_options()
{
$config = array();
$config['upload_path'] = ''.base_url().'resource/product/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '0';
$config['overwrite'] = FALSE;
return $config;
}
我有三个输入字段,即product_name,category and product_image。现在,我想移动多个图像并插入以逗号(,)分隔的product_image 名称,例如img1.jpg,img2.jpg,img3.jpg 这样。现在,当我警告响应时,它什么也没显示。那么,我该如何解决?请帮帮我。
类似mysql的预期输出演示
product_name category product_images
============ ======== ==============
men t-shirt MEN img1.jp,img2.jpg,img3.jpg
kids t-shirt kids img1.jp,img2.jpg,img3.jpg
【问题讨论】:
-
我已经更新了我的代码,现在只有
product_name and category值存储在数据库中,但图像没有插入,也没有移动到文件夹中 -
var_dump($dataInfo);的结果是什么? -
它只插入
product_name和category和product_image不插入也不移动到文件夹中。 -
如果我打印
$cpt它只计算1而我一次选择 3 张图像 -
你误会了,我想知道你的文件是否正确,所以我换个说法,
var_dump($_FILES);的结果是什么?
标签: php jquery codeigniter mysqli upload