Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal do Imasters, sou meio burro em PHP para ser mais claro (de uma maneira meio grotesca)...
Enfim...
Estou com uma dúvida que não consigo resolver.
Quero fazer um upload de imagens que grava a imagem na pasta e no banco de dados, só que na mesma linha da tabela
quando eu aperto o submit ele duplica a linha no banco de dados. (uma imagem para cada linha)
Aqui segue o código:
<form enctype="multipart/form-data" method="post" action="">
<p>
<input type="file" name="img[]" multiple/>
</p>
<p>
<input type="submit" name="cadastrar" value="cadastrar" />
</p>
</form>
<?php
try{
$conexao = new PDO('mysql:host=localhost;dbname=images', 'root', '');
$conexao -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}catch(PDOException $e){
echo 'ERROR: ' . $e->getMessage();
}
if(isset($_POST['cadastrar'])){
//INFO IMAGEM
$file = $_FILES['img'];
$numFile = count(array_filter($file['name']));
//PASTA
$folder = '../UPLOAD/';
//REQUISITOS
$permite = array('image/jpeg', 'image/png', 'image/gif');
$maxSize = 1024 * 1024 * 1;
//MENSAGENS
$msg = array();
$errorMsg = array(
1 => 'O arquivo no upload é maior do que o limite suportado!',
2 => 'O arquivo ultrapassa o limite de tamanho!',
3 => 'O upload do arquivo foi feito parcialmente!',
4 => 'Não foi feito o upload do arquivo!'
);
if($numFile <= 0){
echo 'Selecione uma imagem';
}
else if($numFile >=10){
echo 'Você pode selecionar até 10 imagens';
}else{
for($i = 0; $i < $numFile; $i++){
$name = $file['name'][$i];
$type = $file['type'][$i];
$size = $file['size'][$i];
$error = $file['error'][$i];
$tmp = $file['tmp_name'][$i];
$extensao = @end(explode('.', $name));
$novoNome = rand().".$extensao";
if($error != 0)
$msg[] = "<b>$name :</b> ".$errorMsg[$error];
else if(!in_array($type, $permite))
$msg[] = "<b>$name :</b> Erro imagem não suportada!";
else if($size > $maxSize)
$msg[] = "<b>$name :</b> Erro imagem ultrapassa o limite de 5MB";
else{
if(move_uploaded_file($tmp, $folder.'/'.$novoNome)){
//$msg[] = "<b>$name :</b> Upload Realizado com Sucesso!";
$insert = "INSERT into imagem (imagens) VALUES (:imagens)";
try {
$result = $conexao->prepare($insert);
$result->bindParam(':imagens', $novoNome, PDO::PARAM_STR);
$result->execute();
$contar = $result->rowCount();
if($contar>0){
echo 'Imagem Cadastrada';
}else {
echo 'Erro ao cadastrar';
}
}catch(PDOException $e){
echo $e;
}
}else
$msg[] = "<b>$name :</b> Desculpe! Ocorreu um erro...";
}
foreach($msg as $pop)
echo '';
//echo $pop.'<br>';
}
}
}
?>
Se alguém puder me dar uma luz agradeço muito mesmo!
Desde já Obrigado!
Carregando comentários...