Jump to content


Photo

Upload múltiplos


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

#31 Gokussj3

Gokussj3

    >> USABILIDADE

  • Usuários
  • 136 posts
  • Sexo:Não informado
  • Interesses:Mulheres

Posted 04/06/2005, 18:32

Opa ... ;)

Poste o código que você está usando aí que nóis resolve ... :D

[]’s :D

Mestre muito obrigado!
Consegui aki!
valeu pela atenção!

[]´s
UAI ESTOU DE VORTA!
Sou WebDesigner, e não desisto nunca!
----------------------------------------
>> www.dpatrick.com.br

#32 ccgdbz1

ccgdbz1

    12 Horas

  • Usuários
  • 182 posts
  • Sexo:Não informado
  • Localidade:Floripa - SC

Posted 13/07/2005, 18:07

ajudou bastante o codigo. valew

#33 henriquefr

henriquefr

    12 Horas

  • Usuários
  • 209 posts
  • Sexo:Não informado
  • Localidade:Cuiabá-MT
  • Interesses:PHP, Ajax e JavaScript.

Posted 14/07/2005, 13:48

aew ... tenho soh uma duvida ... o codigo funfo legal aki ... (y)

minha duvida eh o seguinte ...com q eu fasso pra ele renomear o arquivo quando manda para o dir ...
tipo 1.gif 2.gif 3.gif e assim vai ..
e mandar para o db o nome do arquivo ...

se alguem souber ae .. :)
valew

:P
<?php

?>

#34 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 31/07/2005, 10:14

Renovando o código...

Abaixo segue um exemplos, mas você pode desmembrá-lo e colocar a parte que envia o(s) arquivo(s) para o servidor em outra página e modificar o valor do parametro action no formulário.


<form enctype="multipart/form-data" method="post" action="<?=$_SERVER['PHP_SELF']?>">
<input type="file" name="arquivo[]" /><br />
<input type="file" name="arquivo[]" /><br />
<input type="file" name="arquivo[]" /><br />
<input type="file" name="arquivo[]" /><br />
<input type="file" name="arquivo[]" /><br />
<input type="submit" name="submit_files" value="Enviar" />
</form>

<?php

if (@$_POST['submit_files'])
{
#! Diretório para onde irão os arquivos
$Dir = "imgs/";

#! Tamanho máximo em kb do arquivo
$MaxTam = 1024 * 20; // 20 KB

#! Defina as extensões que serão aceitas
$aExtensoes = array("gif",
                    "jpg",
                    "bmp",
                    "jpeg",
                    "png",
                    "psd"
                    );
                    
// Removendo conteúdo com valor igual
$_FILES['arquivo']['name'] = array_unique($_FILES['arquivo']['name']);
$Arq = $_FILES['arquivo'];

foreach ($Arq['name'] as $chave => $arqNome)
{
    // Se foi enviado corretamente
    if ($Arq['error'][$chave] == 0)
    {
        // Se possui uma extensão válida
        if (in_array(strtolower(substr($arqNome, strrpos($arqNome, ".") + 1)), $aExtensoes))
        {
            // Informações do arquivo
            $nome = str_replace(" ", "_", $arqNome);
            $tamanho = $Arq['size'][$chave];
            $tmp = $Arq['tmp_name'][$chave];
            $type = $Arq['type'][$chave];

            // Se o arquivo existir
            if (!file_exists($Dir.$nome))
            {
                // Verificando o tamanho do arquivo
                if ($tamanho <= $MaxTam)
                {
                    // se for enviado corretamente
                    if (move_uploaded_file($tmp, $Dir.$nome))
                    {
                        print "- Arquivo ({$nome}) enviado com sucesso!<br />";
                    }
                    else
                    {
                        print "- Erro ao enviar o arquivo ({$nome})<br />";
                    }
                }
                else
                {
                    print "- Arquivo maior que o tamanho máximo permitido ({$nome}) {$tamanho}<br />";
                }
            }
            else
            {
                print "- Arquivo existente ({$nome})<br />";
            }
        }
        else
        {
            print "- Extensão inválida do arquivo ({$arqNome})!<br />";
        }
    }
}
}
?>


Recomendo a leitura de:
http://www.php.net/m...file-upload.php


[]'s
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#35 leandrok

leandrok

    Normal

  • Usuários
  • 100 posts
  • Sexo:Não informado
  • Localidade:Curitiba - PR

Posted 22/02/2006, 18:40

como que faria para gravar no bd tbm o endereço das imagens.

#36 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 23/02/2006, 06:28

como que faria para gravar no bd tbm o endereço das imagens.

                  if (move_uploaded_file($tmp, $Dir.$nome))
                  {
                      $add = mysql_query("INSERT INTO tabela (arq) VALUES ('".$Dir.$nome."')");
                      print "- Arquivo ({$nome}) enviado com sucesso!<br />";
                  }


tente algo desse tipo...

Flws...
;)Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#37 andreacerqueira

andreacerqueira

    Normal

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

Posted 12/04/2006, 20:01

Não entendi essa linha:
if ( ($name!="") and (is_file($f_tmp[$i])) and (in_array(substr($name, -3),$ext)) ) {
Rola tradução?

Outra coisa, estou tentando salvar o nome dos arquivos no BD tb, mas não estou conseguindo pq não tenho ideia de como fazer isso utilizando arrays.

Tipo são 3 imagens enviadas e cada uma tem um campo, como faria isso?

"insert into $TB (foto1, foto2, foto3) Values ('$não sei','$não sei','$não sei')";

:huh:

#38 Goku Jr

Goku Jr

    Nilson

  • Usuários
  • 3757 posts
  • Sexo:Masculino

Posted 12/04/2006, 20:52

1º - Simples :assobio: :

se ( variavel { $name } não { ! } for igual { = } a nulo { "" } ) e { and } ( não { ! } existir o arquivo { is_file } ( $f_tmp[$i] ) ) e { and } ( existir um valor na array { in_array } ( e retorne somente os três últimos caracteres do valor da variavel $name { substr } for igual { , } ao valor da variavel { $ext } ) ) ) faça está ação { { }
// blá, blá, blá
termina ação { } }


Ou seja, Ficará assim:
if ( ($name != "" ) AND (!is_file($f_tmp[$i])) AND (in_array(substr($name,-3),$ext)) ) {
// blá, blá, blá
}

Será que da pra entender :rolleyes: ?

2º - neste script você só irá conseguir incluir 1 imagem por vez. :unsure:
INSERT INTO tabela (campo) VALUES ('{$_FILES['campo']['name'][$i]}')

Qualquer dúvida e só falar! ;)

T+

Edição feita por: Goku Jr, 12/04/2006, 20:58.

-----------------------------------------------------------------------
PALMEIRAS - Primeiro campeão do mundo em 1951

#39 andreacerqueira

andreacerqueira

    Normal

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

Posted 12/04/2006, 20:59

neste script você só irá conseguir incluir 1 imagem por vez. :unsure:

INSERT INTO tabela (campo) VALUES ('{$_FILES['campo']['name'][$i]}')


Deu pra entender mais ou menos, mais pra mais do que pra menos :D valeu!

Sobre incluir uma imagem por vez eu não entendi, como assim?

#40 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 12/04/2006, 23:55

Sobre incluir uma imagem por vez eu não entendi, como assim?


Ele se refere ao registro do nome da imagem na tabela de dados.

Como lhe foi apresentado, será registrado cada nome de imagem em um único campo (coluna). Logo, teremos para cada arquivo enviado, um novo registro.
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#41 andreacerqueira

andreacerqueira

    Normal

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

Posted 13/04/2006, 08:50

Ele se refere ao registro do nome da imagem na tabela de dados.
Como lhe foi apresentado, será registrado cada nome de imagem em um único campo (coluna). Logo, teremos para cada arquivo enviado, um novo registro.


Mmmm entendi, na verdade estava testando aqui e pra cada imagem estava sendo criado um registro inteiro, uma linha no bd.

Dessisto de arrays isso me complica hahaha :P

#42 KiTTo

KiTTo

    Novato no fórum

  • Usuários
  • 20 posts
  • Sexo:Não informado
  • Localidade:Porto Alegre - RS

Posted 10/05/2006, 21:10

Ae... tentei fazer, mas nao se ta certo...
Da uma olhada se eu consegui fundir o código que eu ja tinha com esse:

<?
require ('../config.php');
//Diretório aonde ficará os arquivos
$dir = "../obras/";
//Extensões permitidas
$ext = array("gif","jpg","jpeg");
//Quant. de campos do tipo FILE
$campos = 3;
//pega o valor das variaveis
$obra_nome = $_POST['obra_nome'];
$obra_texto = $_POST['obra_texto'];
$obra_status = $_POST['obra_status'];
//Se for enviado
if (isset($_POST['submit'])) {
//Obtendo info. dos arquivos
$f_name = $_FILES['file']['name'];
$f_tmp = $_FILES['file']['tmp_name'];
$f_type = $_FILES['file']['type'];
//Contar arquivos enviados
$cont=0;
//Repetindo de acordo com a quantidade de campos FILE
for($i=0;$i<$campos;$i++){
//Pegando o nome
$name = $f_name[$i];
//Verificando se o campo contem arquivo
  if ( ($name!="") and (is_file($f_tmp[$i])) and (in_array(substr($name, -3),$ext)) ) {
	if ($cont==0) {
	  echo "<b>Arquivo(s) enviados:<br /></b>";
	}
	  echo $name." - ";
	  //Movendo arquivo's do upload
	  $up = move_uploaded_file($f_tmp[$i], $dir.$name);
		//Status
		if ($up==true):
			echo  "<i>Enviado!</i>";
			  $cont++;
		else:
			echo "<i>Falhou!</i>";
		endif;
	  echo "<br />";
  }
}
}
//insere o valor na tbl_obras
$obra_id = mysql_insert_id();
$sql = ("INSERT INTO tbl_obras (obra_id,obra_nome,obra_foto_1,obra_foto_2,obra_foto_3,obra_status) VALUES 
('$obra_id','$obra_nome',
'{$_FILES['campo']['name'][$i]}','{$_FILES['campo']['name'][$i]}','{$_FILES['campo']['name'][$i]}','$obra_status'")
 or die ( mysql_error() );

$adiciona = mysql_query ($sql, $connection);

if ($adiciona){
echo '<script>alert("Obra adicionada com sucesso."); this.location = "nova_obra.php";</script>';
}
else {
echo '<script>alert("Não foi posível adicionar a obra, tente novamente.");this.location = "nova_obra.php";</script>';
}
?>

Ae, vlw ;)

Edição feita por: KiTTo, 10/05/2006, 21:11.


#43 TopBrasil

TopBrasil

    Normal

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

Posted 19/05/2006, 13:07

cheguei ao seguinte codigo:

<?php
include"../config.php";

//Diretório aonde ficará os arquivos
$dir = "../imagens/";

//Extensões permitidas
$ext = array("gif","jpg","png");

//Quant. de campos do tipo FILE
$campos = 1;

//Formulário
echo '<form method="post" action="'.$PHP_SELF.'" enctype="multipart/form-data">
Arquivo: <input type="file" name="file[]"><br />

<input type="submit" name="submit" value=" OK ">
</form>';


//Se for enviado
if (isset($_POST['submit'])) {

//Obtendo info. dos arquivos
$f_name = $_FILES['file']['name'];
$f_tmp = $_FILES['file']['tmp_name'];
$f_type = $_FILES['file']['type'];


//Contar arquivos enviados
$cont=0;

//Repetindo de acordo com a quantidade de campos FILE
for($i=0;$i<$campos;$i++){

//Pegando o nome
$name = $f_name[$i];

//Verificando se o campo contem arquivo
if ( ($name!="") and (is_file($f_tmp[$i])) and (in_array(substr($name, -3),$ext)) ) {

if ($cont==0) {
echo "<b>Arquivo(s) enviados:<br /></b>";
}
echo $name." - ";

//Movendo arquivo's do upload
$up = move_uploaded_file($f_tmp[$i], $dir.$name);

//Status
if ($up==true):




echo "<i>Enviado!</i> - ";
echo "<a href=\"{$dir}/{$name}\">Visualizar</a>";
$cont++;


else:
echo "<i>Falhou!</i>";
endif;

echo "<br />";
}

}

echo ($cont!=0) ? "<br><i>Total de arquivos enviados: </i>".$cont : "Nenhum arquivo foi enviado!";
}
?>
<!-- Minus AutoDato -->


Agora a minha duvida e de como fazer pra jogar isso no banco de dados??
========================================
TopBrasil - * Aqui seu site tem valor *
========================================

========================================
E-mail: williamont@terra.com.br
========================================

========================================
MSN: wil_rock@hotmail.com
========================================

========================================
Doando - O TopBrasil apoia essa ideia
========================================

#44 arthurlucena

arthurlucena

    Imamade nandomo..

  • Usuários
  • 343 posts
  • Sexo:Masculino
  • Localidade:João Pessoa
  • Interesses:Desenho, artes gráficas, fotografia, games, praia, cinema, animes, cultura japonesa, tecnologia, desenvolvimento para web entre outras coisas =)

Posted 16/06/2006, 10:47

Aeeeh povo, estou com um problema relacionado a este tópico.
Fiz aqui um sistema de administração de conteúdo, onde alguns usuarios com certos privilégios podem enviar arquivos para uma determinada pasta do sistema. Ok, até ai tudo em ordem. Fiz ele aqui no windows e quando fui enviar para o Linux ele retorna esse erro:

Warning: move_uploaded_file(./arquivosEnviados/Documentos/arq_builds automaticos.pps) [function.move-uploaded-file]: failed to open stream: No such file or directory in /usr/local/apache2/www/SACneus/recebeArquivo.php on line 70

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpsAhafm' to './arquivosEnviados/Documentos/arq_builds automaticos.pps' in /usr/local/apache2/www/SACneus/recebeArquivo.php on line 70


Onde a linha 70 seria:
$upload = move_uploaded_file($arqNomeTmp, $arqDir.$arqNome);

Ou seja, ele não está conseguindo enviar o arquivo. Já conversei com o suporte linux daqui e ele já liberou (chmod 0777) tanto a essa pasta "arquivosEnviados" e suas subpastas quando a pasta "tmp" para o sistema mover... fiquei meio perdido agora. Sei que o problema está nessa conversão windows>linux mas não sei precisamente onde, nem o que consertar..

Alguem poderia me dar um help aki?

Edição feita por: arthurlucena, 16/06/2006, 10:50.

...........darkness.........²d¬¬b²
A vida é muito curta para se preocupar com o que as outras pessoas pensam. Viva.
Arthur Lucena..................貴族
arthurlucena at email dot com
[O'']olhares.com/arthurlucena

#45 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 16/06/2006, 12:25

O problema está no caminho destino.

Aqui dá esse erro mencionado quando uso '/dir/...' ao invés de './dir/...'.

E quando tento mover para './' ele envia o arquivo para o diretório PHP da pasta do Apache! heheheh =)

Se for o caso de mover o arquivo para o mesmo diretório do arquivo que está fazendo o upload, use o caminho completo.

Você pode obter através de:
move_uploaded_file($arqNomeTmp, str_replace('\\', '/', getcwd()) .'/'. $arqNome);

Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29




0 user(s) are reading this topic

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

IPB Skin By Virteq