Jump to content


Photo

Upload Multipo


  • Faça o login para participar
2 replies to this topic

#1 ThiAgo Leão

ThiAgo Leão

    Normal

  • Usuários
  • 64 posts
  • Sexo:Masculino
  • Interesses:PHP, MYSQ, Flash, Css, XHTML, Photoshop, Corel Draw

Posted 21/10/2010, 07:10

Fala ae galera, beleza?

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

#2 linkbes

linkbes

    Novato no fórum

  • Usuários
  • 9 posts
  • Sexo:Não informado

Posted 31/10/2010, 18:07

Qual erro está dando?

Oque nao está acontencendo?

#3 André Manoel

André Manoel

    Doutor

  • Usuários
  • 996 posts
  • Sexo:Masculino
  • Localidade:Brasilia

Posted 01/11/2010, 13:00

Para colocar um upload multiplo da forma que você está fazendo já está correto.
Você criou o campo como um array nome[]

Então quando você verificar o que está vindo no array $_FILES, você verá que é um array com os dados de de cada arquivo.

Depois disso na parte que você faz a criação da imagem 800X600 e todas as outras coisas você terá que usar um foreach para armazenar todos os arquivos.

(y)
Iniciando na Ajuda On line...

Posted Image Meu post lhe ajudou? Reputar/votar é uma das formas de agradecer.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq