Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 218

Foreach

27-02-2013 22:43

Estou tentando fazer o upload de no máximo 5 imagens juntas, mas sem sucesso.
Conseguiria me ajudar?


OS CAMPOS SÃO:
Foto1: <input type="file" name="foto[]" size="32" onchange="preview(this);" /> Foto2: <input type="file" name="foto[]" size="32" onchange="preview(this);" /> Foto3: <input type="file" name="foto[]" size="32" onchange="preview(this);" /> Foto4: <input type="file" name="foto[]" size="32" onchange="preview(this);" /> Foto5: <input type="file" name="foto[]" size="32" onchange="preview(this);" />


PHP
// Definimos as configurações desejadas da imagem maior $handle = new Upload($_FILES['foto']); foreach($_FILES['foto']['name'] as $key => $foto){ $campo[ $key ] = $foto; if ($handle->uploaded){ $handle->file_new_name_body = $foto; $handle->image_resize = true; $handle->image_x = 500; $handle->image_ratio_x = true; $handle->jpeg_quality = 70; $handle->image_convert = 'jpg'; $handle->mime_check = true; $handle->Process('images/produtos/'.$url.'/'); $foto = $handle->file_dst_name; if ($handle->processed) { $handle->clean(); }else{ echo ' Erro: ' . $handle->error . ''; } } // Aqui nos devifimos nossas configurações de imagem do thumbs $handle->image_resize = true; $handle->image_ratio_y = false; $handle->image_x = 100; $handle->image_y = 75; $handle->image_contrast = 10; $handle->jpeg_quality = 60; $handle->auto_create_dir = true; // Definimos a pasta para onde a imagem thumbs será armazenada $handle->Process('images/produtos/'.$url.'/thumbs/'); // Excluimos os arquivos temporarios $handle-> Clean(); }

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17635
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Foreach

27-02-2013 22:59

Tem um outro post seu aqui no fórum, com uma dúvida parecida Upload-de-5-imagens_1_7128.html
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 218

Foreach

27-02-2013 23:04

São códigos diferentes. Você poderia me ajudar nesse?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17635
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Foreach

27-02-2013 23:11

Qual erro retorna?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 218

Foreach

27-02-2013 23:28

Não envia a imagem.
0
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 218

Foreach

28-02-2013 00:15

Eu estou utilizando essa class: http://www.revistaphp.com.br/artigo.php?id=177


Não mostrava nenhum erro. Cadastra no BD certinho, menos enviar as imagens.
Ai coloquei esse código para forçar um erro:
ini_set('display_errors',1);
ini_set('display_startup_erros',1);
error_reporting(E_ALL);


Ai apareceu esse erro, que não entendi...


Notice: Array to string conversion in /home/xxxx/public_html/class/class.upload.php on line 2475

Warning: preg_match() expects parameter 2 to be string, array given in /home/xxxx/public_html/class/class.upload.php on line 2526

Notice: Array to string conversion in /home/xxx/public_html/class/class.upload.php on line 2658

Warning: getimagesize(Array) [function.getimagesize]: failed to open stream: No such file or directory in /home/xxx/public_html/class/class.upload.php on line 2658

Warning: preg_match() expects parameter 2 to be string, array given in /home/xxx/public_html/class/class.upload.php on line 2685
Erro: File too big.

Warning: Cannot modify header information - headers already sent by (output started at /home/xxx/public_html/class/class.upload.php:1) in /home/xxxx/public_html/c.produtoAdicionar.php on line 207
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17635
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Foreach

28-02-2013 08:20

O script do link é usado para enviar uma única imagem. Para enviar múltiplas imagens, teria que fazer uma série de alterações no script do link, para a foto virar um array.

Busque com o próprio autor do script se ele não pode adicionar uma alteração no script para isso.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 218

Foreach

28-02-2013 11:52

Entrei em contato e eles tem.
Veja: http://www.verot.net/php_class_upload_faq.htm
Procure por: What about multiple uploads?

Eu não sou muito bom em orientação a objetos, você poderia mostrar no meu codigo a forma correta?



foreach($_FILES['foto']['name'] as $key => $foto){ $campo[ $key ] = $foto; // Definimos as configurações desejadas da imagem maior $handle = new Upload($_FILES['foto']); if ($handle->uploaded){ $handle->file_new_name_body = $foto; $handle->image_resize = true; $handle->image_x = 500; $handle->image_ratio_x = true; $handle->jpeg_quality = 70; $handle->image_convert = 'jpg'; #$handle->image_watermark_position = "XXX.com"; #$handle->image_watermark_x = -15; $handle->mime_check = true; $handle->Process('images/produtos/'.$url.'/'); $foto = $handle->file_dst_name; if($handle->processed){ true; }else{ echo 'Erro ao enviar imagem: '.$handle->error; } // Aqui nos devifimos nossas configurações de imagem do thumbs $handle->file_new_name_body = $foto; $handle->image_resize = true; $handle->image_ratio_y = false; $handle->image_x = 100; $handle->image_y = 75; $handle->image_contrast = 10; $handle->jpeg_quality = 60; #$handle->image_watermark_position = "XXXX.com"; #$handle->image_watermark_x = -15; $handle->auto_create_dir = true; $handle->file_safe_name = true; $handle->Process('images/produtos/'.$url.'/thumbs/'); if($handle->processed){ true; }else{ echo 'Erro ao enviar imagem: '.$handle->error; } } }

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17635
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Foreach

28-02-2013 12:07

A estrutura correta para pegar cada foto individualmente, seria isso

<?php if(isset($_POST['submit'])) { $fotos = Array(); foreach($_FILES['foto']['name'] as $key => $foto){ $fotos[] = $_FILES['foto']['name'][$key]."<br />"; } print_r($fotos); } ?> <form method="POST" action="teste.php" enctype="multipart/form-data"> <table> <tr> <td><input type="file" name="foto[]"></td> </tr> <tr> <td><input type="file" name="foto[]"></td> </tr> <tr> <td colspan=2 align=center><input type="submit" name="submit" value="Enviar"> </td> </tr> </table> </form>

Basta você aplicar a class que vai upar e tratar a figura.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 218

Foreach

28-02-2013 12:13

Mas amigo, como devo fazer no meu código. Seria possível isso?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17635
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Foreach

28-02-2013 12:19

Isso você tem que meter a mão na massa. O ideal, seria você pegar o bloco da class que trata a imagem, e jogar esse bloco dentro do foreach, usando a variável da foto no laço. A cada laço. A imagem da vez é trabalhada individualmente.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 218

Foreach

28-02-2013 12:20

Você viu o link que mandei acima?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17635
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Foreach

28-02-2013 12:31

sim
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 218

Foreach

28-02-2013 13:17

Poxa, faz uma força em tentar ajudar... Você não sabe o quanto é ruim não saber fazer!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17635
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Foreach

28-02-2013 14:00

O objetivo não é fazer scripts. Te indico usar o script que indiquei em outro post, upload total.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 218

Foreach

28-02-2013 19:46

Consegui fazer enviar a imagem, mas não estou conseguindo gravar o nome no banco de dados.
Poderia ajudar?


Foto1: <input type="file" name="foto[]" size="32" onchange="preview(this);" /> Foto2: <input type="file" name="foto[]" size="32" onchange="preview(this);" /> Foto3: <input type="file" name="foto[]" size="32" onchange="preview(this);" /> Foto4: <input type="file" name="foto[]" size="32" onchange="preview(this);" /> Foto5: <input type="file" name="foto[]" size="32" onchange="preview(this);" />


$files = array(); foreach($_FILES['foto'] as $key => $foto){ foreach ($foto as $i => $v) { if (!array_key_exists($i, $files)) $files[$i] = array(); $files[$i][$key] = $v; } } foreach ($files as $file) { // Definimos as configurações desejadas da imagem maior $handle = new Upload($file); if ($handle->uploaded){ $handle->image_resize = true; $handle->image_x = 500; $handle->image_ratio_x = true; $handle->jpeg_quality = 85; $handle->image_convert = 'jpg'; $handle->mime_check = true; $handle->Process('images/produtos/'.$url.'/'); if($handle->processed){ true; }else{ echo 'Erro ao enviar imagem: '.$handle->error; } // Aqui nos devifimos nossas configurações de imagem do thumbs $handle->image_resize = true; $handle->image_ratio_y = false; $handle->image_x = 100; $handle->image_y = 75; $handle->image_contrast = 10; $handle->jpeg_quality = 70; $handle->auto_create_dir = true; #$handle->file_safe_name = true; $handle->Process('images/produtos/'.$url.'/thumbs/'); if($handle->processed){ true; }else{ echo 'Erro ao enviar imagem: '.$handle->error; } } unset($handle); }



. . . GetSQLValueString(foto1, "text"), GetSQLValueString(foto2, "text"), GetSQLValueString(foto3, "text"), GetSQLValueString(foto4, "text"), GetSQLValueString(foto5, "text"), . . .

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17635
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Foreach

28-02-2013 19:49

Como está seu bd? É um INSERT para cada foto?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 218

Foreach

28-02-2013 19:59

Sim, cada foto em um coluna. FOTO1 - FOTO2 - FOTO3 - FOTO4
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17635
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Foreach

28-02-2013 20:04

Você deve armazenar o nome da foto em um array, depois chamar esse valor fora do array, onde será feito o insert.

Veja esse exemplo

$valor = Array(); // criando o array for($i = 0; $i < 3; $i++) { // simulando o foreach $valor[]=$i; // armazenando o valor no array } // exibindo ou salvando os valores pelo índice echo "INSERT .... coluna1, coluna2, VALUES {$valor[1]},{$valor[2]}";

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 218

Foreach

28-02-2013 20:08

Brother, o mesmo trabalho que você tem para fazer o código acima seria o mesmo fazer usando o meu e me ajudando, e muito!!!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17635
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Foreach

28-02-2013 20:29

O objetivo do fórum não é fazer nada para os usuários. E sim dá exemplo para que o usuário adapte o código. Se eu fosse uma empresa, com uns 10 funcionários, e tivesse um ganho de uns 10 mil por mês poderia até fazer isso.
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado