Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
E ae galera, tudo bem? Fiz um sistema de upload de imagem e funcionou beleza, agora estou fazendo um de upload multiplo de imagens, mais na hora que eu seleciono as imagens ele não funciona, não salva na pasta, não salvar no banco e nem aparece erro nenhum, já alterei o foreach várias vezes e não conseguir fazer funcionar, segue abaixo o codigo, desde já agradeço a ajuda de todos:
O Banco de Dados é esse abaixo:
CREATE TABLE IF NOT EXISTS `mydb`.`dub` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`foto` VARCHAR(255) NOT NULL,
PRIMARY KEY (`id`))
A classe index.php:
<html>
<head>
</head>
<body>
Selecionar
<form action="upload.php?funcao=gravar" method="POST" enctype="multipart/form-data">
<input type="file" name="arquivo[]" id="arquivo" multiple="" />
<br><br>
<input type="submit" name="button" id="button" value="Enviar" />
</form>
<br>
<br>
<br>
<br>
<br>
<?php
include_once("conexion.php");
$sql = mysql_query("SELECT * FROM dub");
while($linha = mysql_fetch_array($sql)){
$id = $linha['id'];
$foto_db = $linha['foto'];
?>
<img src="fotos/<?php echo $foto_db ?>" width=200 heigh=250>
<a href = "editar.php?id=<?php echo $id ?>"> Alterar </a>
<?php
}
?>
</body>
</html>
A classe upload.php:
<?php
include_once("conexion.php");
if($_GET['funcao'] == "gravar"){
foreach($_FILES['arquivo']['tmp_name'] as $key => $tmp_name ){
$foto = $key.$_FILES['arquivo']['name'][$key];
$foto_tmp = $_FILES['arquivo']['tmp_name'][$key];
$foto_size =$_FILES['arquivo']['size'][$key];
$foto_type =$_FILES['arquivo']['type'][$key];
$foto = str_replace(" ", "_", $foto);
$foto = str_replace("ã", "a", $foto);
$foto = str_replace("á", "a", $foto);
$foto = str_replace("à", "a", $foto);
$foto = str_replace("é", "e", $foto);
$foto = str_replace("ê", "e", $foto);
$foto = str_replace("è", "e", $foto);
$foto = str_replace("í", "i", $foto);
$foto = str_replace("ì", "_", $foto);
$foto = str_replace("ó", "o", $foto);
$foto = str_replace("õ", "o", $foto);
$foto = str_replace("ç", "c", $foto);
$foto = strtolower($foto);
$tipos = array('image/jpeg', 'image/pjpeg', 'image/jpeg', 'image/pjpeg', 'image/gif', 'image/png');
$foto_type = $_FILES['arquivo']['type'];
if(array_search($foto_type, $tipos) == false){
" <meta http-equiv=refresh content='0; url=index.php'>
<script type='text/javascript'>
alert('Formato inválido');
</script>
";
}else{
if(file_exists("fotos/$foto")) {
$a = 1;
while(file_exists("fotos/[$a]$fotos")) {
$a++;
}
$foto = "[".$a."]". $foto;
}
if(!move_uploaded_file($_FILES['arquivo']['tmp_name'], "fotos/".$foto)) {
echo "
<meta http-equiv=refresh content='0; url=index.php'>
<script type='text/javascript'>
alert('Erro no upload do arquivo');
</script>
";
}
$sql = mysql_query("INSERT INTO dub (foto) value ('$foto')");
} header("Location: index.php");
}
}else{
header("Location: index.php");
}
Primeiro, habilite todas as exibições de erro, como mostrado neste tópico
Depois retire as meta-tags e o header(). Troque tudo por simples echo com alguma mensagem explicativa. Isso vai ajudar a ver onde o script está falhando
Execute novamente e veja se aparece algum erro.
PS: funções mysql_* estão obsoletas desde o PHP 5.5 e já foram removidas no PHP 7. Prefira usar MySQLi ou PDO. Veja mais aqui: http://rberaldo.com.br/mysql-obsoleto-php/