0
I had an insert form to add some fields. But I also wanted to insert an image to a folder on the server and the image path to a table in the database but I’m not able to.
<form action="enviar_registo_produto.php" enctype="multipart/form-data" method="POST" >
<div class="status alert alert-success" style="display: none"></div>
<div class="form-group">
<label>Nome</label>
<input name="nome" class="form-control" placeholder="(Nome do Produto)">
</div>
<input name="id_produto" type="hidden" class="form-control">
<div class="form-group">
<label>Preço</label>
<input name="preco" class="form-control" placeholder="(Preco Do Produto)">
</div>
<div class="form-group">
<label>Descrição</label>
<textarea name="descricao" class="form-control" placeholder="(Descrição do Produto)" rows="3"></textarea>
</div>
<div class="form-group">
<label>Foto do Produto</label>
<input name="foto" type="file" size="100">
<input type="hidden" name="MAX_SIZE_FILE" value="300000">
</div>
<div class="form-group">
<label>id_categoria</label>
<select name="id_categoria" class="form-control">
<option value="1">1 - Pratos Do Dia</option>
<option value="2">2 - Petiscos</option>
<option value="3">3 - Bebidas</option>
<option value="4">4 - Sobremesas</option>
</select>
</div>
<button type="submit" name="enviar" value="Enviar" class="btn btn-outline btn-primary btn-sm">Enviar</button>
<input type="reset" class="btn btn-outline btn-warning btn-sm" name="BTApaga" value="Apagar">
<br/>
<br/>
</form>
And in php I have this code that is constantly giving me the error "An error occurred while uploading"
<?php
header('Content-Type: text/html; charset=UTF-8');
$nome=($_POST["nome"]);
$preco=($_POST["preco"]);
$descricao=($_POST["descricao"]);
$id_categoria=($_POST["id_categoria"]);
$tamanho_maximo = $_POST["MAX_SIZE_FILE"];
$tipos_imagem = array("image/gif", "image/jpeg", "image/x-png", "image/bmp");
$ficheiro = $_FILES['foto'];
include ("ligaBD.php");
$existe="Select * from Produtos where nome='$nome'";
$faz_existe= mysqli_query($ligaBD, $existe);
$jaexiste= mysqli_num_rows($faz_existe);
if($jaexiste==0){
if ($ficheiro['error'] != 0) {
echo '<p>Erro no upload do ficheiro!<br>';
switch ($ficheiro['error']) {
case UPLOAD_ERR_INI_SIZE:
echo 'O ficheiro excede o tamanho máximo permitido!';
break;
case UPLOAD_ERR_FORM_SIZE:
echo 'O ficheiro enviado é muito grande!';
break;
case UPLOAD_ERR_PARTIAL:
echo 'O processo de upload não foi concluído!';
break;
case UPLOAD_ERR_NO_FILE:
echo 'Não foi indicado nenhum ficheiro para upload!';
break;
}
echo '</p>';
exit;
}
if ($ficheiro['size']==0 OR $ficheiro['tmp_name']==NULL) {
echo "<script>alert('Nenhum ficheiro enviado');window.location ='insert_produtos.php';</script>";
exit;
}
if ($ficheiro['size']>$tamanho_maximo) {
echo '<p>O ficheiro enviado é muito grande (Tamanho máximo = ' . $tamanho_maximo . ')</p>';
exit;
}
$destino = '../../imagens_produtos/';
$destino .= $ficheiro['name'];
if (!move_uploaded_file($ficheiro['tmp_name'],$destino)) {
echo "<script>alert('Ocorreu um erro durante o Upload!');window.location ='insert_produtos.php';</script>";
} else {
$insere_produto= "INSERT INTO Produtos( nome, preco, descricao, foto, id_categoria) VALUES ('".$nome."','".$preco."','".$descricao."','".$ficheiro['name']."','".$id_categoria."')";
$faz_insere_produto= mysqli_query($ligaBD, $insere_produto);
echo"<script>alert('Produto inserido com sucesso!');window.location ='index.php';</script>";
}
} else {
echo "<script>alert('O nome do produto ja existe!');window.location ='insert_produtos.php';</script>";
}
?>
Is there a specific error or just doesn’t work?
– Leite
These two errors appear to me:
– Andre Mano
Warning: move_uploaded_file(../../imagens_products/13D910D5.PNG): failed to open stream: No such file or directory in /homes/i15630/public_html/PAP_TASQUINHA/Adminpanel/enviar_registo_product.php on line 61
– Andre Mano
Warning: move_uploaded_file(): Unable to move '/tmp/phprxqr03' to '.. /.. /imagens_produtos/13D910D5.PNG' in /homes/i15630/public_html/PAP_TASQUINHA/Adminpanel/enviar_registo_produto.php on line 61 @Leite
– Andre Mano
Fate, I presume, is
~/i5630/public_html/PAP_TASQUINHA/imagens_produtos
, that folder exists and has the correct permissions?– Leite
Yes there is, I’ve checked the permissions and you’ve got them all
– Andre Mano
I suggest you pass the full destination instead of just .. /.. /imagens_products/
– Lucas de Carvalho