我愿意在CodeIgniter上上传多张图片,我只知道上传一张图片。这是我的型号代码:
private function _uploadImage()
{
$config['upload_path'] = './upload/product/';
$config['allowed_types'] = 'gif|jpg|png';
$config['file_name'] = $this->product_id;
$config['overwrite'] = true;
$config['max_size'] = 1024; // 1MB
$this->load->library('upload', $config);
if ($this->upload->do_upload('image')) {
return $this->upload->data("file_name");
}
return "default.jpg";
}
你能告诉我怎么做吗?
试试这个:视图:
<input type='file' name='files[]' multiple=""> <br/><br/>
<input type='submit' value='Upload' name='upload' />
控制器:
public function uploadImage() {
$data = [];
$count = count($_FILES['files']['name']);
for($i=0;$i<$count;$i++){
if(!empty($_FILES['files']['name'][$i])){
$_FILES['file']['name'] = $_FILES['files']['name'][$i];
$_FILES['file']['type'] = $_FILES['files']['type'][$i];
$_FILES['file']['tmp_name'] = $_FILES['files']['tmp_name'][$i];
$_FILES['file']['error'] = $_FILES['files']['error'][$i];
$_FILES['file']['size'] = $_FILES['files']['size'][$i];
$config['upload_path'] = 'uploads/';
$config['allowed_types'] = 'jpg|jpeg|png|gif';
$config['max_size'] = '5000';
$config['file_name'] = $_FILES['files']['name'][$i];
$this->load->library('upload',$config);
if($this->upload->do_upload('file')){
$uploadData = $this->upload->data();
$filename = $uploadData['file_name'];
$data['totalFiles'][] = $filename;
}
}
}
$this->load->view('imageUploadForm', $data);
}
试试这个:
在视图上-
<input type="file" class="custom-file-input" id="file" name="file[]" multiple>
<label class="custom-file-label" for="customFile">Choose file</label>
</div>
在控制器上:
if ($multiplefile = $this->request->getFiles()) {
foreach($multiplefile['file'] as $file)
{
if ($file->isValid() && ! $file->hasMoved())
{
$newName = $file->getRandomName();
$file->move(WRITEPATH.'uploads', $newName);
$data = [
'report_id' => $report_id,
'document_name' => $newName,
'document_type' => $file->getClientMimeType()
];
$save = $builder->insert($data);
$msg = 'Files has been uploaded';
}
echo 'no';
}
echo 'no';
如果出现错误,则在文件名上应用正则表达式以删除空白