Ir ao conteúdo
  • Cadastre-se
Junior Melo26

Upload de multiplos arquivos

Recommended Posts

Boa dia pessoal, gostaria de saber se existe uma forma de enviar vários arquivos independente da extensão? Criei um upload de imagens e ele funciona normal via desktop, já nos smartphones não funciona. já alterei o php.ini, ja alterei as permissões no servidor e o máximo de arquivos que envia são 2 via Mobile.

Será que alguem poderia me ajudar? será que existe uma solução?

Desde já agradeço.

Junior Melo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste seu código para que a comunidade analise e te mostre o que se encontra errado no intuito de resolver seu problema com o upload múltiplo de arquivos.

Editado por JorgeGomes

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode fazer algo deste tipo:

// Função que faz conexão com o banco de dados
$con = connection();

    $files = $_FILES['files'];
    $files_num = count(array_filter($files['name']));
    
    //PASTA
    $target_dir = '../uploads/';

    //REQUISITOS
    $file_permis = array('image/jpeg', 'image/jpg', 'image/png');
    $max_size = 1024 * 1024 * 5;

    //MENSAGENS
    $msg = array();
    $errorMsg = array(
        '1' => 'O arquivo enviado excede o limite definido na diretiva upload_max_filesize do php.ini.',
        '2' => 'O arquivo excede o limite definido em MAX_FILE_SIZE no formulário HTML.',
        '3' => 'O upload do arquivo foi feito parcialmente.',
        '4' => 'Nenhum arquivo foi enviado.',
        '6' => 'Pasta temporária ausente. Introduzido no PHP 5.0.3.',
        '7' => 'Falha em escrever o arquivo em disco. Introduzido no PHP 5.1.0. ',
        '8' => 'Uma extensão do PHP interrompeu o upload do arquivo. O PHP não fornece uma maneira de determinar qual extensão causou a interrupção. Examinar a lista das extensões carregadas com o phpinfo() pode ajudar. Introduzido no PHP 5.2.0. '
    );

    for ($i = 0; $i < $files_num; $i++) {
        $name = $files['name'][$i];
        $type = $files['type'][$i];
        $size = $files['size'][$i];
        $error = $files['error'][$i];
        $tmp = $files['tmp_name'][$i];
//        $ext = @end(explode('.', $name));
        $ext = substr($name, -4);
        $ext = (strpos($ext, '.')) ? '.' . $ext : $ext;
        $newName = $postid . '-' . md5(uniqid(time())) . $ext;

        if ($error)
            $msg[] = "<span class='alert alert-danger' role='alert'>'.$name.': '" . $errorMsg['$error'] . "'</span>";
        elseif (!in_array($type, $file_permis))
            $msg[] = "<span class='alert alert-danger' role='alert'>'.$name.': Tipo da imagem não é aceitável!'</span>";
        elseif ($size > $max_size)
            $msg[] = "<span class='alert alert-danger' role='alert'>'.$name.': Imagem de tamanho maior que 5MB.'</span>";
        else {
            move_uploaded_file($tmp, $target_dir . $y . '/' . $m . '/' . $newName);
            date_default_timezone_set('America/Recife');
            $timezone = date('Y-m-d H:i:s');
            $statement = $con->prepare("INSERT INTO imagens (id, img, data) VALUES (?, ?, ?)");
            $statement->bind_param("iss", $postid, $newName, $timezone);
            $statement->execute();
            if (!$statement)
                echo $con->error;
            $statement->close();
        }

        if ($msg)
            foreach ($msg as $message) :
                echo $message . '</br>';
            endforeach;

    }
    $con->close();

No html:

<input type="file" name="files[]" />

 

Editado por JorgeGomes

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×