Jump to content


Photo

Upload De Imagem


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

#1 felipe.of

felipe.of

    Novato no fórum

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

Posted 13/07/2004, 04:46

olhaa sooo...
eu to a um tempao fazendo um sitema...e a unica coisa que falta
eh a ***** do upload hauehuaehuae xPpPp
entao..se alguem souber o erro se sinta avontade a responder :T
olha soooh..esse eh o codigo:

obs: Vem tres variaveis, $arquivo (que contem a imagem) $tipo (Que contem os dados para determina qual tabela) e $id ,de tipo POST por um formulario anterios e tambem o erro que aparece é que nao ta enviando a imagem ou seja seguindo os if acontese isso "header("Location: upload_imagem.php?id=$_POST[id]&tipo=$_POST[tipo]&erro=O arquivo não pode ser copiado para o servidor");"

<?php
// elimina o limite de tempo de execução
//set_time_limit (0);

// *** Parâmetros de configuração da operação ***

// Limitar as extensões? (sim ou nao)
$limitar_ext = "nao";

// extensões autorizadas
$extensoes_validas = array(".gif",".jpg",".jpeg");

//caminho absoluto onde os arquivos serão armazenados
$caminho_absoluto = "fotos";

// Limitar o tamanho do arquivo? (sim ou nao)
$limitar_tamanho = "sim";

// tamanho limite do arquivo em bytes
$tamanho_bytes = "2048000";

// se já existir o arquivo, indica se ele deve ser sobrescrito (sim ou nao)
$sobrescrever = "sim";


//$nome_arquivo = $_FILES['arquivo']['name'];
$ext = strrchr($_FILES['arquivo']['name'],'.');
$nome_arquivo = $_POST["id"].$ext; //Arquivo permanece com o mesmo nome
$tamanho_arquivo = $_FILES['arquivo']['size'];
$arquivo_temporario = $_FILES['arquivo']['tmp_name'];

switch($_POST["tipo"]){
case 1:
$tabela = "aluno";
$detalhes_end = "detalhes_alun.php";
break;
case 2:
$tabela = "professor";
$detalhes_end = "detalhes_prof.php";
break;
default:
header("Location: upload_imagem.php?id=$_POST[id]&erro=Tabela não expecificada!");
break;
}
if (!empty ($nome_arquivo)){
	if ($sobrescrever == "nao" && file_exists("$caminho_absoluto/$nome_arquivo"))
  header("Location: upload_imagem.php?id=$_POST[id]&tipo=$_POST[tipo]&erro=Arquivo já existe.");

	if (($limitar_tamanho == "sim") && ($tamanho_arquivo > $tamanho_bytes))
  header("Location: upload_imagem.php?id=$_POST[id]&tipo=$_POST[tipo]&erro=Arquivo deve ter no máximo $tamanho_bytes bytes.");

	$ext = strrchr($nome_arquivo,'.');
	if ($limitar_ext == "sim" && !in_array($ext,$extensoes_validas))
  header("Location: upload_imagem.php?id=$_POST[id]&tipo=$_POST[tipo]&erro=Extensão de arquivo inválida para upload.");
	if(move_uploaded_file($arquivo_temporario, "$caminho_absoluto/$nome_arquivo")){
  //Upload bem sucedido
  
  //Atualiza campo imagem
  require_once('Connections/conn.php');
  mysql_select_db($database_conn, $conn);
  $query_rs = "UPDATE $tabela SET imagem = '$nome_arquivo' WHERE id = $_POST[id]";
  $rs = mysql_query($query_rs, $conn) or die(mysql_error());

  header("Location: $detalhes_end?id=$_POST[id]");
	}else{
  //Erro no envio
  header("Location: upload_imagem.php?id=$_POST[id]&tipo=$_POST[tipo]&erro=O arquivo não pode ser copiado para o servidor");
	}
}else{
	//Usuario não selecionou arquivo
	header("Location: upload_imagem.php?id=$_POST[id]&tipo=$_POST[tipo]&erro=Selecione o arquivo a ser enviado");
}
?>
[/COLOR]

Edição feita por: felipe.of, 13/07/2004, 05:02.


#2 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 13/07/2004, 05:29

Qual é a mensagem de erro?
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#3 felipe.of

felipe.of

    Novato no fórum

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

Posted 13/07/2004, 12:50

olha so, o erro que aparece nao é um erro do php, do codigo, mas sim que o arquivo nao ta enviando, e se o arquivo nao envia redireciona pruma outra pagina que aparece "O arquivo não pode ser copiado para o servidor", como voce pode ver nu codigo abaixo:

if(move_uploaded_file($arquivo_temporario, "$caminho_absoluto/$nome_arquivo")){
 //Upload bem sucedido
 
 //Atualiza campo imagem
 require_once('Connections/conn.php');
 mysql_select_db($database_conn, $conn);
 $query_rs = "UPDATE $tabela SET imagem = '$nome_arquivo' WHERE id = $_POST[id]";
 $rs = mysql_query($query_rs, $conn) or die(mysql_error());

 header("Location: $detalhes_end?id=$_POST[id]");
}else{
 //Erro no envio
 header("Location: upload_imagem.php?id=$_POST[id]&tipo=$_POST[tipo]&erro=O arquivo não pode ser copiado para o servidor");
}



#4 MarviN*

MarviN*

    nw . newton web

  • Usuários
  • 780 posts
  • Sexo:Não informado
  • Localidade:Brasília - DF

Posted 13/07/2004, 13:04

Talvez o servidor esteja configurado pra não mostrar os erros do PHP.. isso dificulta na hora de debugar!!!

Eu não estou vendo nenhum erro, eu só não recomendo colocar variaveis dentro de aspas.. colocaria assim:

$caminhoCompleto . "/" . $nomeArquivo



No mais, pode ser que a função esteja desabilitada, ou vc não tem permissão pra gravar no diretório que você está tentando (se o servidor for linux).

Verifica todas essas possibilidades ae.. boa sorte! (y)
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
[ Blog Desenvolvimento Web: http://www.newtonwagner.net/blog ]
[ Diário da Selva: http://www.diariodaselva.com/ ]

[ "Não existe um caminho para a paz; a paz é o caminho." Mahatma Gandhi ]

#5 felipe.of

felipe.of

    Novato no fórum

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

Posted 13/07/2004, 13:21

Sei la cara se eu tenho permicao para fazer isso ou nao,
é que esse codigo eu peguei de um amigo meu e fiz algumas modificacoes
para que a tabela se modifique dinamicamente...
mas se alguem tiver simples de upload q eu possa dar uma olhada, poderia me manda?
ah e pq vc nao recomenda coloca variaveis dentro de aspas, marvim?

mas então valeu ai pela ajuda de vcs xPpP
[]'s

Edição feita por: felipe.of, 13/07/2004, 13:23.


#6 Marcão

Marcão

    Marcãaaaaaaaao

  • Usuários
  • 1754 posts
  • Sexo:Não informado
  • Interesses:Faixa preta de Muay-Thay<br>Faixa Roxa de Jiu-Jitsu<br>:D<br>Um dia eu chego lá

Posted 13/07/2004, 13:26

Cara,eu fiz um aqui que vc faz assim:
escolhe até 10(dez imagens)
cria um thumb com ela(bota uma logomarca por cima)
ae envia apenas os files que tem caminho!!
insere no banco os dados!!
ficou pequeno o código!!
queres dar uma sacada??
Marcão -=- PHP é coisa de MESTRE e falo mais nada -=-
Minha Foto
"Não temas,segue adiante,não olhes para trás!!
Segura na mão de
Deus e vai.."

#7 felipe.of

felipe.of

    Novato no fórum

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

Posted 13/07/2004, 16:09

pode me manda velho?
xPpp
valew \o\

#8 gregorytg

gregorytg

    Mestre

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

Posted 13/07/2004, 16:32

Marcão, manda esse esquema de logo marca ae?.to bem loko pra achar um sistemas desse!
"Porque o Senhor será a tua confiança, e guardará os teus pés de serem presos". \o/

#9 felipe.of

felipe.of

    Novato no fórum

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

Posted 13/07/2004, 18:05

pooo
eu peguei o arquivo do meu amigo...
testei deu tudo certo..feiz o upload.
dai eu faso as minhas modificacoes novamente..e fala q nao pode enviar o arquivo
xTTTTt~~
olha o codigo do meu amigo

<?
// elimina o limite de tempo de execução
//set_time_limit (0);

// *** Parâmetros de configuração da operação ***

// Limitar as extensões? (sim ou nao)
$limitar_ext = "sim";

// extensões autorizadas
$extensoes_validas = array(".gif",".jpg",".jpeg");

//caminho absoluto onde os arquivos serão armazenados
$caminho_absoluto = "../fotos";

// Limitar o tamanho do arquivo? (sim ou nao)
$limitar_tamanho = "sim";

// tamanho limite do arquivo em bytes
$tamanho_bytes = "2048000";

// se já existir o arquivo, indica se ele deve ser sobrescrito (sim ou nao)
$sobrescrever = "sim";


//$nome_arquivo = $_FILES['arquivo']['name'];
$ext = strrchr($_FILES['arquivo']['name'],'.');
$nome_arquivo = $_POST["id"].$ext; //Arquivo permanece com o mesmo nome
$tamanho_arquivo = $_FILES['arquivo']['size'];
$arquivo_temporario = $_FILES['arquivo']['tmp_name'];


if (!empty ($nome_arquivo)){
	if ($sobrescrever == "nao" && file_exists("$caminho_absoluto/$nome_arquivo"))
  header("Location: upload.php?erro=Arquivo já existe.");

	if (($limitar_tamanho == "sim") && ($tamanho_arquivo > $tamanho_bytes))
  header("Location: upload.php?erro=Arquivo deve ter no máximo $tamanho_bytes bytes.");

	$ext = strrchr($nome_arquivo,'.');
	if ($limitar_ext == "sim" && !in_array($ext,$extensoes_validas))
  header("Location: upload.php?erro=Extensão de arquivo inválida para upload.");

	if(move_uploaded_file($arquivo_temporario, "$caminho_absoluto/$nome_arquivo")){
  //Upload bem sucedido
  
  //Atualiza campo imagem
  require_once('../Connections/conn.php');
  mysql_select_db($database_conn, $conn);
  $query_rs = sprintf("UPDATE imobiliaria_imoveis SET imagem = '%s' WHERE id = %s", $nome_arquivo, $_POST['id']);
  $rs = mysql_query($query_rs, $conn) or die(mysql_error());

  header("Location: detalhes.php?id=$_POST[id]");
	}else{
  //Erro no envio
  header("Location: upload.php?erro=O arquivo não pode ser copiado para o servidor");
	}
}else{
	//Usuario não selecionou arquivo
	header("Location: upload.php?erro=Selecione o arquivo a ser enviado");
}
?>

alguem ve alguma diferenca?!

#10 thiagorsl

thiagorsl

    Ex-admin xD

  • Ex-Admins
  • 1151 posts
  • Sexo:Não informado
  • Localidade:Sampa
  • Interesses:http://sermaldito.amovoce.net/

Posted 15/07/2004, 00:45

O scritp está correto oq pode ser é que naum esteja colocando as extensões que deseja .....

$extensoes_validas = array(".gif",".jpg",".jpeg");

Adicione ai (y)

Ou o arquivo que está mandando é muito grande ;)

Bom resumindo é algo com o arquivo que está mandando eu naum vi nada de errado ;)

#11 felipe.of

felipe.of

    Novato no fórum

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

Posted 15/07/2004, 00:56

AAAAAAAAAAaaaaaaaaa
eu tirei o redirecionamento das paginas
e deu esse erro aqui:

Notice: Undefined index: arquivo in f:\easyphp1-7\www\alunos\upload_script.php on line 27

Notice: Undefined index: arquivo in f:\easyphp1-7\www\alunos\upload_script.php on line 29

Notice: Undefined index: arquivo in f:\easyphp1-7\www\alunos\upload_script.php on line 30

se vc verificar na pagina seria essas linhas respectivamente:

$ext = strrchr($_FILES['arquivo']['name'],'.');
$tamanho_arquivo = $_FILES['arquivo']['size'];
$arquivo_temporario = $_FILES['arquivo']['tmp_name'];

e olha so eu verifiquei na pagina anterior e ta tudo certo
o formulario de envio seria o seguinte:

<form action="upload_script.php" method="post">
                <table width="600" border="1" cellpadding="5" cellspacing="0" bordercolor="#FFFFFF" bgcolor="#C1E0FF" class="tabela">
                  <tr>
                    <td width="116" class="titulotabela" style="font-weight: bold">C&oacute;digo:</td>
                    <td width="458"><?php echo $_GET['id'] ?>&nbsp;</td>
                  </tr>
                  <tr>
                    <td class="titulotabela" style="font-weight: bold">Imagem:</td>
                    <td><input name="arquivo" type="file" id="arquivo" size="40">                      </td>
                  </tr>
                  <tr>
                    <td class="titulotabela" style="font-weight: bold">&nbsp;</td>
                    <td><input type="submit" name="Submit" value="Upload">                      <input name="MAX_FILE_SIZE" type="hidden" id="MAX_FILE_SIZE" value="2048000">
                    <input name="id" type="hidden" id="id" value="<?php echo $_GET['id'] ?>">
                    <input name="tipo" type="hidden" id="tipo" value="<?php echo $_GET['tipo'] ?>">
                    Tamanho M&aacute;ximo 2Mb</td>
                  </tr>
</table>
</form>

não sei o que ta dando...ta normal x/~~
plofiti
valew ai xP
\o\

#12 thiagorsl

thiagorsl

    Ex-admin xD

  • Ex-Admins
  • 1151 posts
  • Sexo:Não informado
  • Localidade:Sampa
  • Interesses:http://sermaldito.amovoce.net/

Posted 15/07/2004, 01:06

Notices são coisas que naum afetam o funcionamento do script entaum se tiver e naum são erros :blink:

Se ele estiver funcionando corretamente e somente aparecem isso no script mas ele faz o seu "serviço" ... entaum coloque no inicio do script isso

error_reporting(E_ALL ^ E_NOTICE);

Caso ele naum funcione fale oq naum funfa em que parte do trabalho ele para ;)

#13 Marcão

Marcão

    Marcãaaaaaaaao

  • Usuários
  • 1754 posts
  • Sexo:Não informado
  • Interesses:Faixa preta de Muay-Thay<br>Faixa Roxa de Jiu-Jitsu<br>:D<br>Um dia eu chego lá

Posted 15/07/2004, 07:57

Caramba!!
foi mal a demora ae!!
não fico conectado o dia todo!! :D
pg1.php
PHP
<?php

<html>
<
head><title>Gravar Foto</title>
</
head>

<
body>
<
form action="pg2.php" method="post" name="form1" enctype="multipart/form-data">

<
table width="53%" border="1" align="center">
<
tr>
<
td colspan="2"><input name="MAX_FILE_SIZE" type="hidden"></td>
</
tr>
<
tr>
<
td width="50%"><input name="gravar1" type="file"></td>
<
td width="50%"><textarea name="texto1" cols="20" rows="3"></textarea></td>
<
td width="50%"><input name="gravar2" type="file"></td>
<
td width="50%"><textarea name="texto2" cols="20" rows="3"></textarea></td>
</
tr>
<
tr>
<
td><input name="gravar3" type="file"></td>
<
td><textarea name="texto3" cols="20" rows="3"></textarea></td>
<
td width="50%"><input name="gravar4" type="file"></td>
<
td width="50%"><textarea name="texto4" cols="20" rows="3"></textarea></td>
</
tr>
<
tr>
<
td><input name="gravar5" type="file"></td>
<
td><textarea name="texto5" cols="20" rows="3"></textarea></td>
<
td width="50%"><input name="gravar6" type="file"></td>
<
td width="50%"><textarea name="texto6" cols="20" rows="3"></textarea></td>
</
tr>
<
tr>
<
td><input name="gravar7" type="file"></td>
<
td><textarea name="texto7" cols="20" rows="3"></textarea></td>
<
td width="50%"><input name="gravar8" type="file"></td>
<
td width="50%"><textarea name="texto8" cols="20" rows="3"></textarea></td>
</
tr>
<
tr>
<
td><input name="gravar9" type="file"></td>
<
td><textarea name="texto9" cols="20" rows="3"></textarea></td>
<
td width="50%"><input name="gravar10" type="file"></td>
<
td width="50%"><textarea name="texto10" cols="20" rows="3"></textarea></td>
</
tr>
<
tr>
<
td colspan="2"><input name="submit" type="submit" value="Enviar"></td>
</
tr>
</
table>

</
form>
</
body>
</
html>

?>
pg2.php
PHP
<?php
require("banco.php");
foreach (
$_FILES as $Arquivo=>$Prop ) {
$y+=1;
if ((
eregi("\.jpg$",$Prop['name']))) {
$sql = "SELECT id FROM tabela ORDER BY id DESC LIMIT 0,1";
$result = mysql_query($sql);
$nome_do_input[$y] = $Prop['tmp_name'];
$nome_da_imagem[$y] =$Prop['name'];
$campo1 = $nome_do_input[$y];
$campo2 = $nome_da_imagem[$y];
$textarea = $_POST['texto'.$y];
@
move_uploaded_file($campo1,$campo2);
$background = imagecreatefromjpeg($campo2);
$insert = imagecreatefrompng("bebe.png");
@
unlink($campo2);
imagecolortransparent($insert,imagecolorexact($insert,255,0,255));
$insert_x = imagesx($insert);
$insert_y = imagesy($insert);
imagecopymerge($background,$insert,0,0,0,0,$insert_x,$insert_y,100);
$x = mysql_fetch_array($result);
$soma = $x['id']+1;
$foto_criada = "foto".$soma.".jpg";
$local = "imagem/".$foto_criada;
@
touch($local);
mysql_query("Insert into tabela(nome,caminho,comentario) values('$foto_criada','$local','$textarea')");
imagejpeg($background,$local,50);
imagedestroy($background);
imagedestroy($insert);
}
}
echo
"<a href='pg_busca.php'>Busca por Fotos</a>"
?>

Marcão -=- PHP é coisa de MESTRE e falo mais nada -=-
Minha Foto
"Não temas,segue adiante,não olhes para trás!!
Segura na mão de
Deus e vai.."




1 user(s) are reading this topic

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

IPB Skin By Virteq