← Desenvolvimento

File Upload PHP

Lida 1446 vezes

Offline

Mig_x 
Membro
Mensagens 50 Gostos 0
Troféus totais: 22
Trófeus: (Ver todos)
50 Posts Level 5 Level 4 Windows User Linux User Mobile User Super Combination Combination Topic Starter Level 3

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: [Seleccione]
<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: [Seleccione]
<?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>";      
         
      
   }
}


?>


Agradeço a vossa ajuda!
Offline

Pundit 
Membro
Mensagens 94 Gostos 6
Troféus totais: 19
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Level 4 Level 3 Level 2 Level 1 50 Posts 10 Posts First Post

a pasta uploads tem permissões de escrita?
Offline

kandalf 
Membro
Mensagens 345 Gostos 15
Troféus totais: 28
Trófeus: (Ver todos)
Mobile User Apple User Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5 Level 4 Level 3

Sim vê se tens permissões de escrita e vê também se estás a referenciar bem o path para a pasta que queres. Sem saber o path da pasta desse ficheiro php e o path para a pasta dos uploads é complicado ajudar.

Vê o log the erros, ou utiliza um código tipo isto 

Código: [Seleccione]
$upload_dir = $_SERVER['DOCUMENT_ROOT'] . "/images/";
if (file_exists($upload_dir) && is_writable($upload_dir)) {
    // funções para o upload aqui
}
else {
    echo 'Não pode escrever na pasta de upload ou então não existe.';
}