Colocar Resposta 
 
Avaliação do Tópico:
  • 0 votos - 0 Média
  • 1
  • 2
  • 3
  • 4
  • 5
File Upload PHP
29-07-2014, 23:49
Mensagem: #1
File Upload PHP
Boa noite,

venho aqui pedir uma ajuda em php, pois já ando as voltas com isto a um tempo e não consigo resolver este "problema".

Ando a tratar duma pequena página web, e tenho que fazer com que as pessoas que lá forem ao preencherem uma pequena tabela, que se quiseres podem enviar uma imagem a partir do computador delas. Eu tenho essa parte em código feito mas não funciona. Ao clicar no botão para escolher uma foto do computador, abre a janela, dá para escolher a imagem mas ela não fica lá. E eu queria saber como faço para a imagem ser enviada por exemplo para a pasta "uploads", pois php nao e bem o meu forte.

Deixo aqui o código da tabela que vos falei:

Código:
<form action="<?php echo $editFormAction; ?>" method="post" enctype="multipart/form-data" name="form1" id="form1">

  <table align="center">
    <tr valign="baseline">
      <td nowrap="nowrap" align="right">Id:</td>
      <td><?php echo $row_Recordset1['id']; ?></td>
    </tr>
    <tr valign="baseline">
      <td nowrap="nowrap" align="right">Nota Rodapé:</td>
      <td><input type="text" name="footnote" value="<?php echo htmlentities($row_Recordset1['footnote'], ENT_COMPAT, 'utf-8'); ?>" size="32" /></td>
    </tr>
    <tr valign="baseline">
      <td nowrap="nowrap" align="right">Titulo:</td>
      <td><input type="text" name="title" value="<?php echo htmlentities($row_Recordset1['title'], ENT_COMPAT, 'utf-8'); ?>" size="32" /></td>
    </tr>
    <tr valign="baseline">
      <td nowrap="nowrap" align="right">Lat:</td>
      <td><input type="text" name="lat" value="<?php echo htmlentities($row_Recordset1['lat'], ENT_COMPAT, 'utf-8'); ?>" size="32" /></td>
    </tr>
    <tr valign="baseline">
      <td nowrap="nowrap" align="right">Lon:</td>
      <td><input type="text" name="lon" value="<?php echo htmlentities($row_Recordset1['lon'], ENT_COMPAT, 'utf-8'); ?>" size="32" /></td>
    </tr>
    <tr valign="baseline">
    <td nowrap="nowrap="align="right">Email:</td>
     <td><input type="email" name="mail" value="<?php echo htmlentities($row_Recordset2['uri'], ENT_COMPAT, 'utf-8'); ?>" size="32" /></td>
     </tr>
     <tr valign="baseline">
    <td nowrap="nowrap="align="right">Cont:</td>
     <td><input type="text" name="cont" value="<?php echo htmlentities($row_Recordset3['uri'], ENT_COMPAT, 'utf-8'); ?>" size="32" /></td>
     </tr>
     <tr valign="baseline">
    <td nowrap="nowrap="align="right">Site:</td>
     <td><input type="text" name="site" value="<?php echo htmlentities($row_Recordset4['uri'], ENT_COMPAT, 'utf-8'); ?>" size="32" /></td>
     </tr>
     
     
    <tr valign="baseline">
      <td nowrap="nowrap" align="right">Imagem URL:</td>
      <td><input type="file" name="img" id="arq"/> <input type="text" name="img" value="<?php echo htmlentities($row_Recordset1['imageURL'], ENT_COMPAT, 'utf-8'); ?>"  size="32"/>     
           
      </tr>
    
    
    <tr valign="baseline">
      <td nowrap="nowrap" align="right" valign="top">Descrição:</td>
      <td><textarea name="description" cols="50" rows="5"><?php echo htmlentities($row_Recordset1['description'], ENT_COMPAT, 'utf-8'); ?></textarea></td>
    </tr>
    <tr valign="baseline">
      <td nowrap="nowrap" align="right">&nbsp;</td>
      <td><input type="submit" name="atualizar" value="Enviar" id="btnEnviar" />     
      
      
     </td>
    </tr>
  </table> 

E o código em PHP:

Código:
<?php      

if (isset($_POST['btnEnviar'])){
   if(file_exists($_FILES['arq']['name'])) {
      echo "O arquivo já existe <br>";
      
      }   else {
         move_uploaded_file($_FILES['arq'] ['tmp_name'],
         "uploads/" . $_FILES["file"]["name"]);
         echo "arquivo enviado <br>";      
         
      
   }
}


?> 
Visitar Website de este utilizador Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
30-07-2014, 03:54
Mensagem: #2
RE: File Upload PHP
Php tambem não é muito o meu forte, mas vamos la ver se te consigo ajudar. Já fiz isto antes e é relativamente simples:

if($_FILES['ficheiro']['name']){

     $uploaddir = './temp_files/'; //caminho da pasta no servidor

     $uploadfile = $uploaddir . basename($_FILES['ficheiro']['name']); //junção do caminho com o nome do ficheiro selecionado

}

                    

if($_FILES['ficheiro']['name']!=null){

     if (move_uploaded_file($_FILES['ficheiro']['tmp_name'], $uploadfile)) {

                         //vazio
                         //tenta copiar o ficheiro

     } else {

                         //mensagem de erro     
          $message = "Ocorreu um erro, tente mais tarde.";

          echo "<script type='text/javascript'>alert('$message');</script>";

          echo '<META HTTP-EQUIV="Refresh" Content="0; URL=pagina.php">';    

          exit; 

     }

}


ATENÇÃO:
- dá jeito verificar se o nome do ficheiro já existe no servidor,
- tens que dar permissões á pasta para poder copiar para lá ficheiros atraves do browser
- e fazer verificações quanto ao tamanho do ficheiro

Algo que pode ser util, em que "arquivo" é o name do input:


$_FILES["arquivo"]["name"]
- O nome original do arquivo no computador do usuário.

$_FILES["arquivo"]["type"]
- O tipo mime do arquivo, se o navegador deu esta informação.
Exemplo: caso uma imagem GIF tenha sido enviada, o mime será: "image/gif".

$_FILES["arquivo"]["size"]
- O tamanho em bytes do arquivo.

$_FILES["arquivo"]["tmp_name"]
- O nome temporário do arquivo, como está guardado no servidor.

$_FILES["arquivo"]["error"]
- O código de erro associado a este upload de arquivo. Essa opção foi adicionada
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
07-08-2014, 19:55
Mensagem: #3
RE: File Upload PHP
Ola desculpem a demora, mas o tempo não tem sido muito. Já consegui com que as imagens sejam enviadas para o servidor a partir do computador. Agora falta-me a outra metade que não estou a conseguir resolver também, que é ao enviar a imagem do computador, ela aparecer no respectivo campo da tabela em que estou a trabalhar. Com os links de imagens da net que tiro funciona, mas do computador não, fica o campo em branco :/
Visitar Website de este utilizador Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
Colocar Resposta 


Saltar Fórum:


Utilizadores a ver este tópico: 2 Visitante(s)