Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

andre2010

Upload para site em PHP

Recommended Posts

Salve!

 

Pessoal, estou precisando criar no meu formulario de cadastro, uma area de upload de imagens, para que eu possa mostrar as imagens inseridas no bd atraves do upload, no meu site!

 

codigo do Formulario:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Cadastro de Praias</title>
<style type="text/css">
.style1 {
color: #FF0000;
font-size: x-small;
}
.style3 {color: #0000FF; font-size: x-small; }
</style>
<link href="titulo_cadastro.css" rel="stylesheet" type="text/css">
</head>

<body>
Cadastro das praias na ZONA SUL:
<p>
<form id="cadastro" name="cadastro" method="post" action="cadastroPraiaZonaSul.php" onSubmit="return validaCampo(); return false;">
  <table width="532" border="0">
    <tr>
      <td>Fotos:</td>
      <td><label>
        <input type="text" name="textfield" id="textfield">
        <input type="submit" name="upload" id="upload" value="Upload">
      Max. 6 fotos para upload</label></td>
    </tr>
    <tr>
      <td height="45" colspan="2"><p>
        <input name="cadastrar" type="submit" id="cadastrar" value="Concluir meu Cadastro!" /> 
          <input name="limpar" type="reset" id="limpar" value="Limpar Campos preenchidos!" />
          <br><span class="style1">* Campos com * são obrigatórios!</span></p>
      <p></p></td>
    </tr>
    <tr>
      <td height="21" colspan="2"><a href="menuCadastro.php" style="text-decoration:none">Voltar</a></td>
    </tr>
  </table>
</form>
</body>
</html>

codigo da pagina de exibicao das imagens (obs: as imagens devem aparecer de acordo com o menu, qdo clicar no Exemplo 01, pegar do banco as 6 fotos relacionadas com o Exemplo 01...)

<?php include ("config.php"); ?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Menu</title>
</head>
<body>
Menu:
<table width="103" border="0">
  <tr><td><a href="?exemplo=1">Exemplo 01</a></td></tr>
  <tr><td><a href="?exemplo=2">Exemplo 02</a></td></tr>
  <tr><td><a href="?exemplo=3">Exemplo 03</a></td></tr>
</table>
Fotos:
<table width="247" border="0">
      <tr>
          <td width="68">Fotos</td>
          <td width="83"> </td>
          <td width="82"> </td>
      </tr>
      <tr>
        <td>
        <img src="imagens/png/85x65.png" border="0" onclick="MM_openBrWindow('imagens/png/660x510.png','','width=660,height=510')"/></td>
        <td>
        <img src="imagens/png/85x65.png" border="0" onclick="MM_openBrWindow('imagens/png/660x510.png','','width=660,height=510')"/></td>
        <td>
        <img src="imagens/png/85x65.png" border="0" onclick="MM_openBrWindow('imagens/png/660x510.png','','width=660,height=510')"/></td>
  </tr>
      <tr>
        <td>
        <img src="imagens/png/85x65.png" border="0" onclick="MM_openBrWindow('imagens/png/660x510.png','','width=660,height=510')"/></td>
        <td>
        <img src="imagens/png/85x65.png" border="0" onclick="MM_openBrWindow('imagens/png/660x510.png','','width=660,height=510')"/></td>
        <td>
        <img src="imagens/png/85x65.png" border="0" onclick="MM_openBrWindow('imagens/png/660x510.png','','width=660,height=510')"/></td>
  </tr>
</table>
</body>
</html>

Alguma sugestao?

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

declare: enctype="multipart/form-data"

<form id="cadastro" name="cadastro" method="post" action="cadastroPraiaZonaSul.php" enctype="multipart/form-data" onsubmit="return validaCampo(); return false;">
e use um move_uploaded_file() para transferir o arquivo.

 

Qual é a dúvida? oque você ja fez? deu erro? qual ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

declare: enctype="multipart/form-data"

<form id="cadastro" name="cadastro" method="post" action="cadastroPraiaZonaSul.php" enctype="multipart/form-data" onsubmit="return validaCampo(); return false;">
e use um move_uploaded_file() para transferir o arquivo.

 

Qual é a dúvida? oque você ja fez? deu erro? qual ?

 

William,

Tenho varias duvidas, pois nao sei como fazer o upload das fotos.

 

1- como faço para buscar as imagens no computador ao clicar em upload?

2- enquanto vou selecionando as imagens o nome dela vao aparecendo em baixo, listadas entende?

3- dps de selecionar as 6 imagens, ao clicar em "Concluir meu Cadastro!" como fazer para elas irem pro banco de dados, para que eu possa busca-las atraves do PHP e mostra-las nos lugares corretos la no site?

Compartilhar este post


Link para o post
Compartilhar em outros sites

basta usar um input do tipo file.

 

<input type="file" name="arquivo" />
essa tag HTML já faz todo esse trabalho para você.

Compartilhar este post


Link para o post
Compartilhar em outros sites

basta usar um input do tipo file.

 

<input type="file" name="arquivo" />
essa tag HTML já faz todo esse trabalho para você.

 

Ok, o 1 item resolvido!

<tr>
      <td>Fotos:</td>
      <td><label>
      <input type="file" name="arquivo" size="40">
      <span class="style4">Max. 6 fotos para upload</span></label></td>
    </tr>
    <tr>
      <td><input type="submit" name="enviar" value="Upload!"></td>
      <td> </td>
</tr>

2- como faço para listar o nome dos arquivos apos serem carregados?

 

Willian, deixa eu te explicar oq eu preciso.

 

Resumidamente, preciso inserir imagens no meu banco de dados e dpois mostrar no meu site, as imagens vindas do banco de dados.

 

o que voce me sugere?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso será somente depois do submit do formulário.. você irá receber um:

$_FILES['arquivo']['name'];
que conterá o nome do arquivo enviado pelo usuário.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dê uma estudada em manipulação de bancos de dados e upload de arquivo. Aparentemente, você não tem nenhum conhecimento nisso. É bom saber o básico antes de começar a aplicação.

 

Para exibir os dados, usa-se o comando SELECT da SQL.

 

Para fazer o upload, basta usar move_uplaoded_file(), basicamente.

 

 

Veja:

http://forum.imasters.com.br/index.php?/topic/192408-sistema-de-cadastro-em-phpmysql/

http://www.php.net/manual/pt_BR/features.file-upload.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segui o conselho do Beraldo e fui ler sobre manipulacao de dados,

meu codigo ficou o seguinte:

 

<? include ("config.php"); ?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<?
if($_POST) {

$pFoto = $_FILES["txtFoto"]["tmp_name"];
$pTipo = $_FILES["txtFoto"]["type"];

move_uploaded_file($pFoto, "c:\\temp\\latest.img");

$pont = fopen("c:\\temp\\latest.img", "rb");
$dados = addslashes(fread($pont, filesize("c:\\temp\\latest.img")));
$sql = mysql_query("INSERT INTO fotos (foto, tipo) VALUES('".$dados."', '".$pTipo."') ",$conexao);
echo "<table border='0' cellpading='0' cellspacing='0' width='95%'>";
$row = mysql_affected_rows($conexao);

if($row) {
echo "<tr>";
echo "<td>Inclusão efetuada com Sucesso!";
echo "</tr>";
}
else {
echo "<tr>";
echo "<td>Erro na inclusão da foto!";
echo "</tr>";
}
echo "</table>";
}

else { ?>
<form name="frmFoto" method="post" enctype="multipart/form-data">
<table width="443" border="0">
  <tr>
    <td>Upload de fotos:</td>
  </tr>
  <tr>
    <td width="437">
    <input type='file' name='txtFoto' size='50'>
	<input type='submit' value='Gravar'></td>
  </tr>
  <tr>
    <td> </td>
  </tr>
  <tr>
    <td><a href="cadastroPraiaZonaSul.html" style="text-decoration:none">Cadastrar Praia</a></td>
  </tr>
  <tr>
    <td><a href="menuCadastro.php" style="text-decoration:none">Voltar para o menu inicial</a></td>
  </tr>
</table>
</form>
<?
}
?>

</body>
</html>

Quando clico em "Gravar" no form, a tela pisca mas nao insere no banco!

 

alguma sugestao?

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça o seguinte:

- Habilite todas as mensagens de erro, adicionando este código ao início do script

error_reporting(E_ALL);
- Troque <? por <?php.

- Qual a idéia com este código?

$pont = fopen("c:\\temp\\latest.img", "rb");
$dados = addslashes(fread($pont, filesize("c:\\temp\\latest.img")));
O valor deste dado é o mesmo que está disponível em $_FILES['txtFoto']['size'].

 

Veja se fazendo isto aparece algum erro

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça o seguinte:

- Habilite todas as mensagens de erro, adicionando este código ao início do script

error_reporting(E_ALL);
- Troque <? por <?php.

- Qual a idéia com este código?

$pont = fopen("c:\\temp\\latest.img", "rb");
$dados = addslashes(fread($pont, filesize("c:\\temp\\latest.img")));
O valor deste dado é o mesmo que está disponível em $_FILES['txtFoto']['size'].

 

Veja se fazendo isto aparece algum erro

 

Carlos Eduardo

 

A ideia seria, "fopen" para abrir o arquivo e o "fread" para varre-lo..

 

rodei novamente com o "error_reporting(E_ALL);" no inicio do codigo e nao deu erros, ficou como estava antes!

 

Carlos, estava lendo em alguns foruns e estavam falando q o modo mais simples de mostrar a imagem no site, era adicionar somente o caminho do arquivo no banco de dados.. seria melhor para resolver meu problema?

 

nao preciso necessariamente inserir a imagem no banco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tem necessidade de usar o fread e o fopen... Veja...

 

O valor deste dado é o mesmo que está disponível em $_FILES['txtFoto']['size'].

 

Além disto, fez a outra modificação?

- Troque <? por <?php.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

E?? Mudou alguma coisa?

 

De qualquer forma, dá uma lida neste link.

http://br.php.net/manual/pt_BR/features.file-upload.php

 

Tem os principais erros e possibilidades para não funcionar.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

E?? Mudou alguma coisa?

 

De qualquer forma, dá uma lida neste link.

http://br.php.net/manual/pt_BR/features.file-upload.php

 

Tem os principais erros e possibilidades para não funcionar.

 

Carlos Eduardo

 

Nao mudou nada!

Dei uma olhada no link q você mandou, tem muita coisa importante ali, mas ainda é mto complexo de entender, prefiro aprender por partes, como estamos fazendo! Usarei o link q você enviou para tirar duvidas onde forem surgindo.

 

Carlos, estava lendo em alguns foruns e estavam falando q o modo mais simples de mostrar a imagem no site, era adicionar somente o caminho do arquivo no banco de dados.. seria melhor para resolver meu problema?

 

nao preciso necessariamente inserir a imagem no banco.

Sera que seria mais simples p o meu caso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com certeza é mais simples. Apenas adicione o $_FILES['txtFoto']['name'] no insert.

 

Carlos Eduardo

 

De que forma?

Podes me mostrar a sintaxe no meu codigo por favor?

Compartilhar este post


Link para o post
Compartilhar em outros sites

$sql = mysql_query("INSERT INTO fotos (foto, tipo) VALUES('".$_FILES['txtFoto']['name']."', '".$pTipo."') ",$conexao);

Mas eu acho que tem coisa errada no teu move_uploaded_file. Modifique esta parte e depois disto, poste o código completo como está agora.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Codigo modificado!

 

<? include ("config.php"); ?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<?php
error_reporting(E_ALL);
if($_POST) {

$pFoto = $_FILES["txtFoto"]["tmp_name"];
$pTipo = $_FILES["txtFoto"]["type"];

move_uploaded_file($pFoto, "c:\\temp\\latest.img");

$sql = mysql_query("INSERT INTO fotos (foto, tipo) VALUES('".$_FILES['txtFoto']['name']."', '".$pTipo."') ",$conexao);

echo "<table border='0' cellpading='0' cellspacing='0' width='95%'>";

$row = mysql_affected_rows($conexao);

if($row) {
echo "<tr>";
echo "<td>Inclusão efetuada com Sucesso!";
echo "</tr>";
}
else {
echo "<tr>";
echo "<td>Erro na inclusão da foto!";
echo "</tr>";
}
echo "</table>";
}

else { ?>
<form name="frmFoto" method="post" enctype="multipart/form-data">
<table width="443" border="0">
  <tr>
    <td>Upload de fotos:</td>
  </tr>
  <tr>
    <td width="437">
    <input type='file' name='txtFoto' size='50'>
	<input type='submit' value='Gravar'></td>
  </tr>
  <tr>
    <td> </td>
  </tr>
  <tr>
    <td><a href="cadastroPraiaZonaSul.html" style="text-decoration:none">Cadastrar Praia</a></td>
  </tr>
  <tr>
    <td><a href="menuCadastro.php" style="text-decoration:none">Voltar para o menu inicial</a></td>
  </tr>
</table>
</form>
<?
} ?>

</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos por partes:

 

<? include ("config.php"); ?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<?php
error_reporting(E_ALL);

O error_reporting é na primeira linha e faltou colocar lá em cima o <?php... Veja:

<?php
error_reporting(E_ALL);
include 'config.php'; 
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<?php

Execute de novo e veja se aparece algum erro.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.