CodeIgniter 3で複数の画像をアップロードする際に問題が発生しました。MY_Upload Class
を試しましたが、他のコードを試しましたが、私にとってはうまくいかなかったのです。複数のアップロードでエラーが発生しました
コントローラ
function do_uploadMultiple(){
$config['upload_path'] = './assets/page/img/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '0';
$config['max_width'] = '0';
$config['max_height'] = '0';
$config['encrypt_name'] = TRUE;
$this->load->library('upload', $config);
$nameField = 'imagem';
if (! $this->upload->do_upload($nameField)){
$error = array('error' => $this->upload->display_errors());
}else{
$foto = array('upload_data' => $this->upload->data());
return $foto['upload_data']['file_name'];
}
}
public function cadastrarPage(){
$data['nome_menu'] = $this->input->post('nome');
$data['titulo'] = $this->input->post('titulo');
$data['text'] = $this->input->post('text');
$data['video'] = $this->input->post('video');
$teste['imagem'] = $this->input->post('imagem');
$id_abrase = $this->Abrase_model->cadastrarPage($data);
for($i = 0; $i < count($_FILES['imagem']['name']); $i++){
$img['id_abrase'] = $id_abrase;
$img['imagem'] = $this->do_uploadMultiple();
$result = $this->Abrase_model->gravarImagem($img);
if($result){
echo 'yeah';
}else{
echo 'fail';
}
}
}
ビュー
<form method="post" action="<?php echo base_url('index.php/abrase/cadastrarPage'); ?>" enctype="multipart/form-data">
<div class="form-group">
<label for="nome">Nome da página no menu</label>
<input id="nome" name="nome" type="text" class="form-control">
</div>
<div class="form-group">
<label for="titulo">Título</label>
<input id="titulo" name="titulo" type="text" class="form-control">
</div>
<div class="form-group">
<label for="text">Texto da Página</label>
<textarea class="form-control" name="text" id="text" cols="30" rows="10"></textarea>
</div>
<div class="form-group">
<label for="imagem">Selecione as imagens </label>
<input class="file" name="imagem[]" id="imagem" type="file" multiple data-show-upload="false">
</div>
<div class="form-group">
<label for="video">Vídeo</label>
<input type="text" name="video" id="video" class="form-control">
</div>
<div class="form-group">
<label for="pdf">Arquivos</label>
</div>
<div class="form-group">
<input class="btn btn-info" type="submit" value="Cadastrar">
</div>
</form>
モデル
public function cadastrarPage($data){
$this->db->set('data_add', 'NOW()', FALSE);
$this->db->set('excluido', 0);
$this->db->insert('abrase', $data);
return $this->db->insert_id();
}
public function gravarImagem($data){
return $this->db->insert('abrase_img', $data);
}
そして今、エラー
A PHP Error was encountered
Severity: Warning
Message: is_uploaded_file() expects parameter 1 to be string, array given
Filename: libraries/Upload.php
Line Number: 412
Backtrace:
File: C:\xampp\htdocs\Tattica\ABRASE\application\controllers\Abrase.php
Line: 32
Function: do_upload
File: C:\xampp\htdocs\Tattica\ABRASE\application\controllers\Abrase.php
Line: 54
Function: do_uploadMultiple
File: C:\xampp\htdocs\Tattica\ABRASE\index.php
Line: 315
Function: require_once
私はウェブで見つけたものすべてを試しましたが、できません。私は助けてください。
あなたはエラーがどこから来ていることがあるので、do_upload/is_uploaded_file機能を表示することがありますし、is_uploaded_fileに渡されているものは何でもので、それは明らかだが、配列ではなく、エラーが言うように、文字列です。 –
エラーメッセージは非常にクリアです。そこから始めてください。 – Sparky
私は複数のロールをアップロードしてforの中に入れて、一度に1つのイメージを使うことができますか? –