Ir ao conteúdo

PHP - Upload de vários arquivos


Jvsierra

Posts recomendados

Postado

E aí, beleza? :D

 

Eu criei um sistema de upload em PHP, que recebe vários arquivos. Ele faz upload certinho, mas eu quero gerar um link para o usuário que upou o(s) arquivo(s) ter acesso a ele(s).

Form: 

<form action="file_upload_script.php" method="post" enctype="multipart/form-data"><input type="file" name="file[]" multiple ><br /><input name="send" class="btn" type="submit" value="Upload" /></form>

Código PHP:

<?phpif(isset($_POST['send'])){$directory="uploads/";$a=0;foreach ($_FILES['file']['name'] as $nameFile) {if(is_uploaded_file($_FILES['file']['tmp_name'][$a])){move_uploaded_file($_FILES['file']['tmp_name'][$a], $directory.$_FILES['file']['name'][$a]);}$a++;}}?>

Eu tentei o seguinte: 

$arquivo = implode('', $_FILES['file']['name']);echo '<br /><a href="' . $directory . $arquivo . '">Clique aqui para acessar o arquivo</a>';

Mas ele não dá o link do arquivo um por um, mas sim como se fosse um arquivo só.

 

Sabem o que podem ser, ou a solução?

Desde já obrigado! :D

  • Moderador
Postado

Olá, 

 

tente por o trecho do link  dentro do foreach

if (isset ( $_POST ['send'] )) :	$directory = "uploads/";	$a = 0;		foreach ( $_FILES ['file'] ['name'] as $nameFile ) :		if (is_uploaded_file ( $_FILES ['file'] ['tmp_name'] [$a] )) :			move_uploaded_file ( $_FILES ['file'] ['tmp_name'] [$a], $directory . $_FILES ['file'] ['name'] [$a] );			$path = $directory . $nameFile;			echo "<br /><a href='$path'>Clique aqui para acessar o arquivo</a>";        endif;       		$a++;	endforeach;endif;

 

Você criou a variável $nameFile, mas não usou.

 

ps: tente identar seu código. se possível use a sintaxe alternativa como fiz, é mais organizado e você não se perde nos blocos de fechamento { }

Postado

Cara, não funcionou. O script continua linkando as imagens como se fossem uma só (/uploads/img1.jpgimg2.jpg)

 

Como o código está agora: 

<!doctype html><html><head><meta charset="iso-8859-1"><title>IMGUpload - Upload your images: fast and easy.</title><style type="text/css">.topo{	width: 100%;	height:43px;	border: 1px solid #4A4A4A;	background-color: #4A4A4A;	color: #FFF;	font-family:Baskerville, "Palatino Linotype", Palatino, "Century Schoolbook L", "Times New Roman", serif;}.barratopo{	width: 100%;	height: 4px;	background-color: #6F6F6F;	}body {	background-color: #191919;}.container{	width: 1000px;	text-align:center;	background-color: #4A4A4A;	color: #FFF;	font-family:Baskerville, "Palatino Linotype", Palatino, "Century Schoolbook L", "Times New Roman", serif;	}	.btn{		width: 500px;		height: 35px;	background-color: #1B7800;border: 0px solid #333;color: #fff;   border-radius: 5px;    -moz-border-radius: 5px;    -webkit-border-radius: 5px;    box-shadow: 1px 1px 3px rgba(0,0,0,0.5);    -moz-box-shadow: 1px 1px 3px rgba(0,0,0,0.5);    -webkit-box-shadow: 1px 1px 3px rgba(0,0,0,0.5);	}		}</style></head><body><div class="topo"><h4>IMGUpload |</h4> </div><div class="barratopo"></div><br /><div class="container"><h1>Upload</h1><?php$_UP['pasta'] = 'uploads/';$_UP['tamanho'] = 10240 * 10240 * 100; $_UP['extensoes'] = array('jpg', 'png', 'gif', 'psd', 'bmp', 'pixar', 'pdf');$_UP['renomeia'] = false;$_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 especificado no HTML';$_UP['erros'][3] = 'O upload do arquivo foi feito parcialmente';$_UP['erros'][4] = 'Não foi feito o upload do arquivo';if ($_FILES['arquivo']['error'] != 0) {die("Não foi possível fazer o upload, erro:<br />" . $_UP['erros'][$_FILES['arquivo']['error']]);exit; }$extensao = strtolower(end(explode('.', $_FILES['arquivo']['name'])));if (array_search($extensao, $_UP['extensoes']) === false) {echo "Extensão não suportada";}else if ($_UP['tamanho'] < $_FILES['arquivo']['size']) {echo "O arquivo enviado é muito grande, envie arquivos de até 10Mb.";}else {if ($_UP['renomeia'] == true) {$nome_final = time().'.jpg';} else {$nome_final = $_FILES['arquivo']['name'];}if (move_uploaded_file($_FILES['arquivo']['tmp_name'], $_UP['pasta'] . $nome_final)) {echo "Upload efetuado com sucesso!";echo '<br /><a href="' . $_UP['pasta'] . $nome_final . '">Clique aqui para acessar o arquivo</a>';} else {echo "Não foi possível enviar o arquivo, tente novamente";}}?><br /></div></body></html>
  • Moderador
Postado

Olá,

 

veja o post #2.

 

o código reescrito que você forneceu no post #1.

 

 comigo aqui funcionou perfeitamente criando um link para cada arquivo enviado

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!