Multiupload sem javascript

Este fórum é para dúvidas onde a base da questão é a linguagem PHP.

Moderador: web

responder a dúvida

Multiupload sem javascript

Mensagem por jesleyNonato Offline » Ter Dez 20, 2011 12:01 pm


Bom dia estou desenvolvendo um upload, contudo, tenho a prioridade de realizar isso somente com php. Tenho o script de upload simples estou tentando fazer um script para vários arquivos e não estou conseguindo....

Segue o código:

Código: Selecionar todos
<?php include("restrito.php"); ?>
<?php

//captura o usuario logado

$_SESSION["login"];

$usuario = $_SESSION["login"];

//echo "$usuario";

// Pasta onde o arquivo vai ser salvo

$_UP['pasta'] = mkdir("uploads/$usuario/", 0777);

sleep(1);

// Tamanho máximo do arquivo (em Bytes)

$_UP['tamanho'] = 1024 * 1024 * 1024 * 1024 * 1024 * 1024 * 2; // 6Mb

// Array com as extensões permitidas

$_UP['extensoes'] = array('jpg', 'png', 'gif');

// Renomeia o arquivo? (Se true, o arquivo será salvo como .jpg e um nome único)

$_UP['renomeia'] = false;

// Array com os tipos de erros de upload do PHP

$_UP['erros'][0] = 'Não houve erro';

$_UP['erros'][1] = 'O arquivo no upload é maior do que o limite do PHP';

$_UP['erros'][2] = 'O arquivo ultrapassa o limite de tamanho especifiado no HTML';

$_UP['erros'][3] = 'O upload do arquivo foi feito parcialmente';

$_UP['erros'][4] = 'Não foi feito o upload do arquivo';


// Verifica se houve algum erro com o upload. Se sim, exibe a mensagem do erro

$arquivo = isset($_FILES['arquivo']) ? $_FILES['arquivo'] : FALSE;
                       
for ($k = 0; $k < count($arquivo['name']); $k++)
   {
    $destino = $diretorio."/".$arquivo['name'][$k];
   
   }

if ($_FILES['arquivo']['error'] != 0) {

die("Não foi possível fazer o upload, erro:<br />" . $_UP['erros'][$_FILES['arquivo']['error']]);

exit; // Para a execução do script

}

// Caso script chegue a esse ponto, não houve erro com o upload e o PHP pode continuar

// Faz a verificação da extensão do arquivo

$extensao = strtolower(end(explode('.', $_FILES['arquivo']['name'])));

if (array_search($extensao, $_UP['extensoes']) === false) {

echo "Por favor, envie arquivos com as seguintes extensões: jpg, png ou gif";

}

// Faz a verificação do tamanho do arquivo

else if ($_UP['tamanho'] < $_FILES['arquivo']['size']) {

echo "O arquivo enviado é muito grande, envie arquivos de até 2Mb.";

}

// O arquivo passou em todas as verificações, hora de tentar movê-lo para a pasta

else {

// Primeiro verifica se deve trocar o nome do arquivo

if ($_UP['renomeia'] == true) {

// Cria um nome baseado no UNIX TIMESTAMP atual e com extensão .jpg

$nome_final = time().'.jpg';

} else {

// Mantém o nome original do arquivo

$nome_final = $_FILES['arquivo']['name'];

}
sleep(1);
// Depois verifica se é possível mover o arquivo para a pasta escolhida

if (move_uploaded_file($_FILES['arquivo']['tmp_name'], "uploads/$usuario/" .$nome_final)) {

// Upload efetuado com sucesso, exibe uma mensagem e um link para o arquivo

echo "Upload efetuado com sucesso!";

echo '<br /><a href="uploads/$usuario/"' . $nome_final . '">Clique aqui para acessar o arquivo</a>';

} else {

// Não foi possível fazer o upload, provavelmente a pasta está incorreta

echo "Não foi possível enviar o arquivo, tente novamente";

}

}

?>

Pelo que li é preciso estruturas de repetição... das quais não entendi muita coisa!



detalhes...


jesleyNonato
MEMBRO
MEMBRO
Mensagens: 21
Registrado em: Seg Dez 05, 2011 5:13 pm


Multiupload sem javascript

Mensagem por web Offline » Ter Dez 20, 2011 12:32 pm

Tem um script aqui no fórum completo, com opção de vários arquivos por upload

Upload-total_33_873.html

detalhes...

Gostou do que encontrou? Divulgue, indique, participe, agradeça pelas respostas.

Faço scripts personalizados ou reparos em scripts. Orçamento MSN codigosnaweb1 [@] gmail [.] com

Avatar do usuário
web
ADMIN
ADMIN
Mensagens: 12439
Registrado em: Sáb Jan 20, 2007 6:08 pm
Localização: RJ / RJ / Brasil

Multiupload sem javascript

Mensagem por jesleyNonato Offline » Qua Dez 21, 2011 12:37 pm

Achei um outro procedimento com js...

Contudo quando adiciono a linha de multiplo input da erro de extensão...

segue o script página html:

Código: Selecionar todos
<html>

<head>
   <script src="multifile_compressed.js"></script>
</head>

<body>

<form enctype="multipart/form-data" action="bora.php" method="post">
   <input id="my_file_element" type="file" name="arquivo" >
   <input type="submit" value="enviar">
</form>

Arquivos:

Código: Selecionar todos
<div id="files_list"></div>
<script>
   var multi_selector = new MultiSelector( document.getElementById( 'files_list' ), 10 );

   multi_selector.addElement( document.getElementById( 'my_file_element' ) ); //linha que gera o multiplo e que dá o erro!
</script>
</body>
</html>

segue o trecho do script php de config:

Código: Selecionar todos
// Tamanho máximo do arquivo (em Bytes)

$_UP['tamanho'] = 1024 * 1024 * 1024 * 1024 * 1024 * 1024 * 2; // 6Mb

// Array com as extensões permitidas

$_UP['extensoes'] = array('jpg', 'png', 'gif');

// Renomeia o arquivo? (Se true, o arquivo será salvo como .jpg e um nome único)

$_UP['renomeia'] = false;

// Array com os tipos de erros de upload do PHP

$_UP['erros'][0] = 'Não houve erro';

$_UP['erros'][1] = 'O arquivo no upload é maior do que o limite do PHP';

$_UP['erros'][2] = 'O arquivo ultrapassa o limite de tamanho especifiado no HTML';

$_UP['erros'][3] = 'O upload do arquivo foi feito parcialmente';

$_UP['erros'][4] = 'Não foi feito o upload do arquivo';

// Verifica se houve algum erro com o upload. Se sim, exibe a mensagem do erro

if ($_FILES['arquivo']['error'] != 0) {

echo("Não foi possível fazer o upload, erro:<br />" . $_UP['erros'][$_FILES['arquivo']['error']]);

// Para a execução do script

}

// Caso script chegue a esse ponto, não houve erro com o upload e o PHP pode continuar


// Faz a verificação da extensão do arquivo

$extensao = strtolower(end(explode('.', $_FILES['arquivo']['name'])));

if (array_search($extensao, $_UP['extensoes']) == true) {

   echo "Por favor, envie arquivos com as seguintes extensões: jpg, png ou gif";

   }


detalhes...


jesleyNonato
MEMBRO
MEMBRO
Mensagens: 21
Registrado em: Seg Dez 05, 2011 5:13 pm


Multiupload sem javascript

Mensagem por web Offline » Qua Dez 21, 2011 1:02 pm

Quando for postar scripts, use a tag Code

Para ter upload múltiplo, é necessário que o name do input esteja em Array, como é mostrado no link que indiquei.

detalhes...

Gostou do que encontrou? Divulgue, indique, participe, agradeça pelas respostas.

Faço scripts personalizados ou reparos em scripts. Orçamento MSN codigosnaweb1 [@] gmail [.] com

Avatar do usuário
web
ADMIN
ADMIN
Mensagens: 12439
Registrado em: Sáb Jan 20, 2007 6:08 pm
Localização: RJ / RJ / Brasil

Multiupload sem javascript

Mensagem por jesleyNonato Offline » Qua Dez 21, 2011 2:30 pm

Alterei o nome do input e ficou assim
Código: Selecionar todos
<input name="arquivo[]">
, acredito que deva ser refeito o config de arquivo pq ele acusou erro novamente nas mesmas linhas!

detalhes...


jesleyNonato
MEMBRO
MEMBRO
Mensagens: 21
Registrado em: Seg Dez 05, 2011 5:13 pm


Multiupload sem javascript

Mensagem por web Offline » Qua Dez 21, 2011 4:19 pm

Dá uma olhada nesse sistema de upload múltiplo que indiquei, já está pronto e funcionando. Dá uma olhada na estrutura do código.

detalhes...

Gostou do que encontrou? Divulgue, indique, participe, agradeça pelas respostas.

Faço scripts personalizados ou reparos em scripts. Orçamento MSN codigosnaweb1 [@] gmail [.] com

Avatar do usuário
web
ADMIN
ADMIN
Mensagens: 12439
Registrado em: Sáb Jan 20, 2007 6:08 pm
Localização: RJ / RJ / Brasil


responder a dúvida

Voltar para PHP

Quem está online

Usuários navegando neste fórum: Bing [Bot] e 1 visitante