tiagocaus 1 Denunciar post Postado Fevereiro 28, 2013 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(); } Compartilhar este post Link para o post Compartilhar em outros sites
rockrgo 138 Denunciar post Postado Fevereiro 28, 2013 falta fechar o foreach } Compartilhar este post Link para o post Compartilhar em outros sites
tiagocaus 1 Denunciar post Postado Fevereiro 28, 2013 No notepad++ não acusa isso. Você tem certeza disso? Compartilhar este post Link para o post Compartilhar em outros sites
rockrgo 138 Denunciar post Postado Fevereiro 28, 2013 não esquece, ele fecha no final do código, não tinha visto foi mal só não sobe as imagens ou retorna erro? Compartilhar este post Link para o post Compartilhar em outros sites
tiagocaus 1 Denunciar post Postado Fevereiro 28, 2013 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 Alguma sugestão pessoal? Entrei em contato com o Autor. 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; } } } Compartilhar este post Link para o post Compartilhar em outros sites
rockrgo 138 Denunciar post Postado Fevereiro 28, 2013 no manual ele tras como montar o multiplo dawnload, vc está utilizando um foreach e no manual ele usa um dentro do outro. olha só $files = array(); foreach ($_FILES['my_field'] as $k => $l) { foreach ($l as $i => $v) { if (!array_key_exists($i, $files)) $files[$i] = array(); $files[$i][$k] = $v; } } Compartilhar este post Link para o post Compartilhar em outros sites
tiagocaus 1 Denunciar post Postado Fevereiro 28, 2013 É eu vi isso e modifiquei para, mas mesmo assim não vai. Veja se fiz algo de errado: $files = array(); foreach($_FILES['foto']['name'] as $key => $foto){ $campo[ $key ] = $foto; foreach ($l as $i => $v) { if (!array_key_exists($i, $files)) $files[$i] = array(); $files[$i][$k] = $v; } } foreach ($files as $file) { // 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->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->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); } Compartilhar este post Link para o post Compartilhar em outros sites
rockrgo 138 Denunciar post Postado Fevereiro 28, 2013 Tenta aí $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->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){ 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->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); } Compartilhar este post Link para o post Compartilhar em outros sites
tiagocaus 1 Denunciar post Postado Fevereiro 28, 2013 FUNCIONOU EM TERMOS...rsrsrs Ele esta enviando o arquivo, mas não esta gerando o nome do arquivo. Enviou assim: .jpg .jpg.jpg .jpg.jpg.jpg Foram 3 imagens de teste que postei. Compartilhar este post Link para o post Compartilhar em outros sites
rockrgo 138 Denunciar post Postado Fevereiro 28, 2013 esta linha é que atribui o nome $handle->file_new_name_body = $foto; tenta trocar a $foto pela $v, senão for a $v precisa ver qual variável está carregando o nome do arquivo. Compartilhar este post Link para o post Compartilhar em outros sites
tiagocaus 1 Denunciar post Postado Fevereiro 28, 2013 Sim. Antes no meu funcionava, mandava o nome, mas não mandava arquivo. Agora manda arquivo, mas não manda o nome da foto... kkkkkkkkkk O que você acha que esta errado? Compartilhar este post Link para o post Compartilhar em outros sites
rockrgo 138 Denunciar post Postado Fevereiro 28, 2013 esta linha é que atribui o nome $handle->file_new_name_body = $foto; tenta trocar a $foto pela $v, senão for a $v precisa ver qual variável está carregando o nome do arquivo. Isto não deu certo? tenta printar as variaveis do foreach só para saber qual delas está com o nome do arquivo. Compartilhar este post Link para o post Compartilhar em outros sites
tiagocaus 1 Denunciar post Postado Fevereiro 28, 2013 Veja: Array ( [name] => Array ( [0] => PayPal 1.png [1] => PayPal 2.png [2] => PayPal 3.png [3] => [4] => ) [type] => Array ( [0] => image/png [1] => image/png [2] => image/png [3] => [4] => ) [tmp_name] => Array ( [0] => C:\wamp\tmp\php64CE.tmp [1] => C:\wamp\tmp\php64CF.tmp [2] => C:\wamp\tmp\php64D0.tmp [3] => [4] => ) [error] => Array ( [0] => 0 [1] => 0 [2] => 0 [3] => 4 [4] => 4 ) => Array ( [0] => 65741 [1] => 471555 [2] => 61132 [3] => 0 [4] => 0 ) ) Array( [name] => Array ( [0] => PayPal 1.png [1] => PayPal 2.png [2] => PayPal 3.png [3] => [4] => ) [type] => Array ( [0] => image/png [1] => image/png [2] => image/png [3] => [4] => ) [tmp_name] => Array ( [0] => C:\wamp\tmp\phpDFB.tmp [1] => C:\wamp\tmp\phpE0B.tmp [2] => C:\wamp\tmp\phpE2C.tmp [3] => [4] => ) [error] => Array ( [0] => 0 [1] => 0 [2] => 0 [3] => 4 [4] => 4 ) [size] => Array ( [0] => 65741 [1] => 471555 [2] => 61132 [3] => 0 [4] => 0 )) Compartilhar este post Link para o post Compartilhar em outros sites
rockrgo 138 Denunciar post Postado Fevereiro 28, 2013 na primeira linha onde está foreach($_FILES['foto'] as $key => $foto){ troca para como estava foreach($_FILES['foto']['name'] as $key => $foto){ Compartilhar este post Link para o post Compartilhar em outros sites
tiagocaus 1 Denunciar post Postado Fevereiro 28, 2013 Quando eu mudo para este: foreach($_FILES['foto']['name'] as $key => $foto){ Não envia o arquivo. Compartilhar este post Link para o post Compartilhar em outros sites
rockrgo 138 Denunciar post Postado Fevereiro 28, 2013 Cara to vendo aqui algumas formas, não estou em casa aí fica meio dificil, se não der certo mais tarde dou uma olhada em uns aquivos que eu tenho em casa e tento resolver. Ve se funciona: $files = array(); foreach($_FILES['foto'] as $key => $foto){ foreach ($foto['name'] 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->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){ 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->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); } Compartilhar este post Link para o post Compartilhar em outros sites
Pedro Ernesto Mattos 1 Denunciar post Postado Fevereiro 28, 2013 Um conselho, usa o netbeans como editor que ele acusa todos os erros, é uma maravilha. Compartilhar este post Link para o post Compartilhar em outros sites
tiagocaus 1 Denunciar post Postado Fevereiro 28, 2013 Um conselho, usa o netbeans como editor que ele acusa todos os erros, é uma maravilha. Depois vou dar uma olhada. Obrigado. veja, teirei essa linha: $handle->file_new_name_body = $foto; E postou o arquivo com nome original do arquivo. Agora para finalizar falta pegar o nome do arquivo e colocar no SQL. Antes eu pagava assim: $campo[ $key ] = $foto; E colocava aqui: GetSQLValueString($campo[0], "text"), GetSQLValueString($campo[1], "text"), GetSQLValueString($campo[2], "text"), GetSQLValueString($campo[3], "text"), GetSQLValueString($campo[4], "text"), Só que agora não funciona. gerar um nome sem ser o nome original do arquivo para não ter problema com caracteres especiais. Compartilhar este post Link para o post Compartilhar em outros sites
rockrgo 138 Denunciar post Postado Fevereiro 28, 2013 O upload do arquivo deu certo néh? tenta pegar o valor desse jeito $campo[ $i ] = $foto; Compartilhar este post Link para o post Compartilhar em outros sites
tiagocaus 1 Denunciar post Postado Fevereiro 28, 2013 Sim, o UPLOAD esta tudo certo. Fiz como falou, mas não pegou o nome do arquivo. Sim, o UPLOAD esta tudo certo. Fiz como falou, mas não pegou o nome do arquivo. Compartilhar este post Link para o post Compartilhar em outros sites