Po estou com uma duvida aqui.
Estou desenvolvendo um sistema com o framework Codeigniter.
Estou querendo fazer upload multiplo.
Eu fiz um código que, quando envia uma imagem, o código trata essa imagem, cria uma imagem grande com 800x600 e um thumb.
Até ae está tudo ok, mas agora quero fazer upload multiplo, mas não estou obtendo sucesso, algum pode me ajudar?
desde já agradeço!
vlwww
CONTROLLER upload.php
<?php
class Upload extends Controller {
function go() {
if(isset($_POST['upload'])) {
$dia = date("Y-m");
$diretorio = 'assets/uploads/'.$dia.'/';
if(!is_dir($diretorio)){
mkdir($diretorio, 0777, TRUE);
chmod($diretorio, 0777);
}
$config['upload_path'] = $diretorio;
$config['allowed_types'] = 'gif|jpg|jpeg|png';
$config['remove_spaces'] = TRUE;
$config['encrypt_name'] = TRUE;
$config['max_size'] = '8192'; // 8Mbs
$this->load->library('upload', $config);
$this->upload->initialize($config);
$this->upload->do_upload();
$image_data = $this->upload->data();
$configLarge = array(
'source_image' => $image_data['full_path'],
'new_image' => $diretorio,
'master_dim' => 'auto',
'maintain_ratio' => true,
'width' => 800,
'height' => 600
);
$this->load->library('image_lib');
$this->image_lib->initialize($configLarge);
$this->image_lib->resize();
$this->image_lib->clear();
$configThumb = array(
'source_image' => $image_data['full_path'],
'new_image' => $diretorio.'/'.substr($image_data['file_name'], 0, -4).'_thumb.'.end(explode(".", $image_data['file_name'])),
'maintain_ratio' => true,
'master_dim' => 'auto',
'width' => 150,
'height' => 150
);
$this->image_lib->initialize($configThumb);
$this->image_lib->resize();
}
}
}
?>
VIEW upload_produto.php
<?php
echo form_open_multipart(base_url().'administracao/upload/go');
echo form_upload('userfile[]');
echo form_upload('userfile[]');
echo form_upload('userfile[]');
echo form_upload('userfile[]');
echo form_upload('userfile[]');
echo form_submit('upload');
echo form_close();
?>
CONTROLLER upload.php (É o mesmo código do de la de cima, porém tentando fazer o upload multiplo)
<?php
class Upload extends Controller {
function go() {
if(isset($_FILES['userfile'])){
$dia = date("Y-m");
$diretorio = 'assets/uploads/'.$dia.'/';
if(!is_dir($diretorio)){
mkdir($diretorio, 0777, TRUE);
chmod($diretorio, 0777);
}
$config['upload_path'] = $diretorio;
$config['allowed_types'] = 'gif|jpg|jpeg|png';
$config['remove_spaces'] = TRUE;
$config['encrypt_name'] = TRUE;
$config['max_size'] = '8192'; // 8Mbs
$this->load->library('upload', $config);
$file_array = $_FILES['userfile'];
$total_files = count($file_array['name']);
// now we know the total number of files to upload.
// let's built a fresh upload array...
$files = array();
for($i = 0; $i < $total_files; $i += 1) {
$files[] = array(
'name' => $file_array['name'][$i],
'tmp_name' => $file_array['tmp_name'][$i],
'size' => $file_array['size'][$i],
'error' => $file_array['error'][$i]
);
}
foreach($files as $file){
$image_data = $this->upload->data();
$configLarge = array(
'source_image' => $image_data['full_path'],
'new_image' => $diretorio,
'master_dim' => 'auto',
'maintain_ratio' => true,
'width' => 800,
'height' => 600
);
$this->load->library('image_lib');
$this->image_lib->initialize($configLarge);
$this->image_lib->resize();
$this->image_lib->clear();
echo "<pre>";
print_r($configLarge);
echo "</pre>";
$configThumb = array(
'source_image' => $image_data['full_path'],
'new_image' => $diretorio.'/'.substr($image_data['file_name'], 0, -4).'_thumb.'.end(explode(".", $image_data['file_name'])),
'maintain_ratio' => true,
'master_dim' => 'auto',
'width' => 150,
'height' => 150
);
$this->image_lib->initialize($configThumb);
$this->image_lib->resize();
}
}
}
}
?>
alguiem pra ajudar?
vlwww