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

upload múltiplo apenas de imagens


gabrielthomaz6

Pergunta

Boa tarde, sou iniciante em php e estou querendo fazer um upload múltiplo de imagens com o banco de dados MySQL, venho procurado vários modelos na internet, mas nenhum funcionou corretamente, tentei até fazer correções. Hoje encontrei este código abaixo, que está funcionando corretamente, mas eu não estou conseguindo fazer a alteração de nome, por exemplo, a primeira foto inserida, seria foto1, a segunda inserida, foto2, e assim por diante, pois está inserindo com o nome original da imagem... Pois cada "conjunto" de fotos, ficariam em diferentes pastas que são de usuários, coisa que já está pronta, ou seja, gostaria de fazer agora essa alteração, pois em cada pasta de usuário, teria as fotos denominadas "foto1, foto2..." Será que podem me ajudar? Segue o código abaixo. O CÓDIGO NÃO É MEU, EU GOSTARIA DE ENTENDÊ-LO SE FOSSE POSSÍVEL, mas está realmente muito difícil, agradeço por qualquer forma de ajuda.

index.php

<?php
include "conexao.inc";
?>


<form action="valida.php" method="POST" enctype="multipart/form-data">
    <input type="file" name="files[]" accept="image/*" multiple/>
    <input type="submit"/><br><br>
    
<?php 
$files = glob("user_data/*.*");
for ($i=1; $i<count($files); $i++) { 
    $num = $files[$i]; echo '    <li--><img alt="random image" src="'.$num.'" style="width:200px;height:200px" />'; 
}
?>
</form>
 

 

valida.php

 

<?php
include "conexao.inc";

if(isset($_FILES['files'])){
    $errors= array();

    foreach($_FILES['files']['tmp_name'] as $key => $tmp_name ){
        $file_name = $key.$_FILES['files']['name'][$key];
        $file_size =$_FILES['files']['size'][$key];
        $file_tmp =$_FILES['files']['tmp_name'][$key];
        $file_type=$_FILES['files']['type'][$key];    
        if($file_size > 2097152){
            $errors[]='File size must be less than 2 MB';
        }        
        $query="INSERT into upload_data (`FILE_NAME`,`FILE_SIZE`,`FILE_TYPE`) VALUES('$file_name','$file_size','$file_type'); ";
        $desired_dir="user_data";
        if(empty($errors)==true){
            if(is_dir($desired_dir)==false){
                mkdir("$desired_dir", 0700);        // Create directory if it does not exist
            }
            if(is_dir("$desired_dir/".$file_name)==false){
                move_uploaded_file($file_tmp,"$desired_dir/".$file_name);
            }else{                                    // rename the file if another one exist
                $new_dir="$desired_dir/".$file_name.time();
                 rename($file_tmp,$new_dir) ;                
            }
         mysqli_query($conexao, $query);            
        }else{
                print_r($errors);
        }
    }
    if(empty($error)){
        echo $file_name;
        echo $file_tmp;
        echo "Success";
    }
}
?>

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Você precisa criar uma regra de como serão os nomes das pastas dos usuários.

<?php 
$files = glob("user_data/*.*");

Aqui ele lê e exibe as imagens salvas, mas repara que a pasta está "fixa", você tem que faze-la mudar conforme o usuário, com uma variável.

<?php
$desired_dir = "user_data";

A mesma variável tem que preencher a $desire_dir
 

<?php
$file_name = $key.$_FILES['files']['name'][$key];

E é dentro de $file_name que você coloca o nome da foto "foto1", "foto2"...

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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...