Ir para conteúdo
Fórum Script Brasil
  • 0

Adaptar Upload de Multiplas Imagens


LauInsane

Pergunta

Boa tarde pessoal, voltei a tentar me arriscar em PHP e estou começando do básico. Pra começar inventei de fazer um sistema de notícias, bem básico. Só que como toda longa viagem, aparecem alguns buracos hehehe. Bom, vamos lá.

Estou querendo colocar uma parte para multiplos upload de imagem nesse sistema, só que não estou conseguindo adaptar nada que funcione, talvez por não ter entendido muito bem a lógica do sistema de multiplos uploads. Se alguém conseguir me dar uma luz ae, porque tá bem dificil pra mim achar a solução mesmo.

Hoje tenho a página que insere os dados no BD básicamente assim, ela não está programada para multiplos uploads, então quem puder me ajudar a começar agradeço de verdade, porque é uma coisa que nunca entendi como fazer.

noticias_nh_add.php

<?

include ("include/conecta.php");

if($_GET["acao"] == cadastrar){

$arquivo = isset($_FILES["imagem"]) ? $_FILES["imagem"] : FALSE;

$caminho = NULL;

$nome_arquivo = $_FILES['imagem']['name'];

if($nome_arquivo == "") {

$sql = "INSERT INTO noticias_nh (imagem) VALUES ('$caminho')";

$resultado = mysql_query($sql) or die ("Não foi possível realizar a consulta ao banco de dados");

mysql_close();

echo "O artigo \"$titulo\" foi cadastrado com sucesso!";

} else {

if(!eregi("^image\/(pjpeg|jpeg|gif)$", $arquivo["type"])) {

echo "Formato da imagem &eacute; inv&aacute;lido. Utilize imagens em GIF ou JPG.";

} else {

if($arquivo["size"] > 500000) {

echo "O tamanho da imagem &eacute; inv&aacute;lido. O máximo permitido é 500KB.";

} else {

preg_match("/\.(gif|jpg|jpeg){1}$/i", $arquivo["name"], $ext);

$imagem_maior = md5(uniqid(time())) . "." . $ext[1];

$upload = "../imagens/noticias_nh/" . $imagem_maior;

$caminho = "imagens/noticias_nh/" . $imagem_maior;

move_uploaded_file($arquivo["tmp_name"], $upload);

$sql = "INSERT INTO noticias_nh (imagem) VALUES ('$caminho')";

$resultado = mysql_query($sql) or die ("Não foi possível realizar a consulta ao banco de dados");

mysql_close();

echo "O artigo \"$titulo\" foi cadastrado com sucesso!";

}

}

}

}

}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Untitled Document</title>

</head>

<body>

<form action="?cat=noticias_nh&sub=adicionar&acao=cadastrar" method="post" enctype="multipart/form-data" name="form1">

<table>

<tr>

<td class="texto">Imagem:</td>

<td><input name="imagem" type="file" id="imagem" size="63"></td>

</tr>

</table>

</form>

</body>

</html>

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

olá LauInsane,

a lógica é simples... observe esse campo:

<input name="imagem" type="file" id="imagem" size="63">

você terá que mudar de acordo com a quantidade de imagens desejar. Ex:

<input name="imagem[]" type=file" id="imagem" size="63">

<input name="imagem[]" type="file" id="imagem" size="63">

<input name="imagem[]" type="file" id="imagem" size="63">

observe o negrito... agora vamos para o PHP.

No PHP basta fazer um foreach() ou se preferir um for() e dentro você colocar o insert. Vou lhe mostrar um ex com o for():

<?php

........

for($m = 0; $m < 3; $m++){

$imagens = $_FILES[$imagem]['name][$i];

.....

$sql = mysql_query("INSERT INTO....");

}

}

é mais ou menos por aí...

abraços

Link para o comentário
Compartilhar em outros sites

  • 0
olá LauInsane,

a lógica é simples... observe esse campo:

<input name="imagem" type="file" id="imagem" size="63">

você terá que mudar de acordo com a quantidade de imagens desejar. Ex:

<input name="imagem[]" type="file" id="imagem" size="63">

<input name="imagem[]" type="file" id="imagem" size="63">

<input name="imagem[]" type="file" id="imagem" size="63">

observe o negrito... agora vamos para o PHP.

No PHP basta fazer um foreach() ou se preferir um for() e dentro você colocar o insert. Vou lhe mostrar um ex com o for():

<?php

........

for($m = 0; $m < 3; $m++){

$imagens = $_FILES[$imagem]['name'][$i];

.....

$sql = mysql_query("INSERT INTO....");

}

}

é mais ou menos por aí...

abraços

Consegui fazer e compreender o upload multiplo de imagens com a sua ajuda e de alguns outros participantes e do google heheh, está funcionando que é uma beleza. Tive que mudar meu BD para fazer tabelas relacionadas pra conseguir gerenciar melhor as imagens. Agora estou com um problema é de fazer deletar essas multiplas imagens que são enviadas para o servidor. Estou com o seguinte código que está funcionando beleza, deleta os registros do BD e UMA imagem do servidor, mas na~oestou conseguindo adaptar para fazer looping e deletar as outras imagens relacionadas ao registro selecionado para exclusão.

<?
include ("include/conecta.php");
require_once("verifica.php");

    $id = $_GET["id"];

    if($_GET["acao"] == excluir){

    $consulta = mysql_query("SELECT * FROM gvnews_img WHERE id_news = $id");
    $resultado = mysql_fetch_object($consulta);
    $sql = "DELETE gvnews,gvnews_img FROM gvnews INNER JOIN gvnews_img WHERE gvnews.id=$id AND gvnews_img.id_news=$id";
    $del = mysql_query($sql)or die(mysql_error());
    
    if( $del ){
    if(is_file($resultado->imagem)){
        unlink($resultado->imagem);
    } 
    }
    }

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<script language=javascript>
function abrir (URL){
   window.open(URL,"janela1","width=450,height=500,left=400,top=200,scrollbars=YES")
}
</script>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Untitled Document</title>
</head>

<body>
<table width="600" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><table width="182" border="0" cellspacing="0" cellpadding="0">
          <?
    $dados = mysql_query("SELECT * FROM gvnews ORDER BY data DESC");
    $conta = mysql_num_rows($dados);
        if($conta == "0"){
            echo "Sem noticias cadastradas";
    } else {
    ?>
      <tr>
        <td width="47">ID</td>
        <td width="135">Status</td>
        </tr>
          <?
    while($linha=mysql_fetch_array($dados)){
    $id = $linha["id"];
    ?>
      <tr>
        <td><? echo "$id" ?></td>
        <td><a href="?cat=gvnews&acao=excluir&id=<?php echo $id; ?>">Excluir</a></td>
        </tr>
    <?
    }
    }
    ?>
    </table></td>
  </tr>
</table>
</body>
</html>

Se possível uma ajudinha, agradeço. Deve ser o mesmo sistema do adicionar, mas não estou achando a lógica novamente.

Editado por LauInsane
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...