Ir para conteúdo

POWERED BY:

Arquivado

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

Edilson_w

[Resolvido] Formulario para selecionar aquivo para download

Recommended Posts

Olá Amigos

 

Estou necessitado de um script em PHP para que faça o seguinte processo:

 

O usuário a através de um formulário onde ele coloca o nome do arquivo para download sem ter necessidade de colocar a extensão desta arquivo.

(Nesta caso vai ter uma pasta onde terão vários arquivos para download)

 

Ao envia o scrpit php vai procurar o arquivo na pasta com a extensão definida se houver este arquivo ele disponibiliza para download, caso não tenha este arquivo informa que o arquivo não existe

 

Alguém poderia dar uma dica de como fazer

Compartilhar este post


Link para o post
Compartilhar em outros sites

// campo de texto do formulário
$nome = "arquivo";

$files = glob( $nome . ".*" );

print_r( $files );

 

Eu fiz da seguinte forma:

 

Formulário em html

forme.html

 

<html>
<body>
<form method="post" action="buscar.php" enctype="multipart/form-data">
<table><tr><td>
<input type="text" name="nome">
</td></tr>
<tr><td align="center">
<input type="submit" value="OK"> -
<input type="reset" value="Limpar">
</td></tr>
</table>
</form>
</body>
</html>

 

buscar.php

 

 

<?php

   // campo de texto do formulário
$nome = "nome";

$files = glob( $nome . "../downloads./*.pdf" );

print_r( $files );
?>

 

Quando clica em enviar no formulário html, na pagina buscar.php e exibido o seguinte

 

Array ( )

Compartilhar este post


Link para o post
Compartilhar em outros sites

Altere seu buscar.php para:

 

$nome = $_POST["nome"];
$pasta = "../downloads/"; // Pasta dos arquivos

if(!empty($nome)) {
	$name = $pasta . $nome . ".pdf";
	$file = file_exists($name);
               
	if($file) {
		header("Content-type: application/pdf");
		header("Content-Disposition: attachment; filename=" . $nome . ".pdf");
		readfile($name);
	} else {
		echo "O arquivo {$nome}.pdf não existe.";
	}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando clica em enviar no formulário html, na pagina buscar.php e exibido o seguinte

 

Array ( )

 

Return Values

 

Returns an array containing the matched files/directories, an empty array if no file matched or FALSE on error.

 

fonte: http://www.php.net/glob

 

array vazio == nenhum arquivo coincide com o padrão

Compartilhar este post


Link para o post
Compartilhar em outros sites

Altere seu buscar.php para:

 

$nome = $_POST["nome"];
$pasta = "../downloads/"; // Pasta dos arquivos

if(!empty($nome)) {
	$name = $pasta . $nome . ".pdf";
	$file = file_exists($name);
               
	if($file) {
		header("Content-type: application/pdf");
		header("Content-Disposition: attachment; filename=" . $nome . ".pdf");
		readfile($name);
	} else {
		echo "O arquivo {$nome}.pdf não existe.";
	}
}

Olá Renato

 

Funcionou como eu esperava parabéns e muito obrigado

Teria como acrescentar um aviso caso o usuário envia-se sem preencher o formulário

 

Agradeço

 

Edilson

Compartilhar este post


Link para o post
Compartilhar em outros sites

já não entendi mais nada

você não queria buscar por qualquer extensão? é ai que glob() entra e faz exatamente isso.

agora só está pesquisando por .pdf. :blink:

 

Desculpe Beraldo

E que na fui claro e objetivo na pergunta que você respondeu.

Mas sua resposta ajudou em muito achegar no que eu estava precisando

 

Muito obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Renato

 

Funcionou como eu esperava parabéns e muito obrigado

Teria como acrescentar um aviso caso o usuário envia-se sem preencher o formulário

 

Agradeço

 

Edilson

 

Você tem que dar uma estudada em PHP, isso é uma coisa mais simples ainda de se fazer :)

 

$nome = $_POST["nome"];
$pasta = "../downloads/"; // Pasta dos arquivos

if(!empty($nome)) {
	$name = $pasta . $nome . ".pdf";
	$file = file_exists($name);
               
	if($file) {
		header("Content-type: application/pdf");
		header("Content-Disposition: attachment; filename=" . $nome . ".pdf");
		readfile($name);
	} else {
		echo "O arquivo {$nome}.pdf não existe.";
	}
} else {
	echo "Você não digitou um nome de arquivo.";
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Olá Renato

 

Funcionou como eu esperava parabéns e muito obrigado

Teria como acrescentar um aviso caso o usuário envia-se sem preencher o formulário

 

Agradeço

 

Edilson

 

Você tem que dar uma estudada em PHP, isso é uma coisa mais simples ainda de se fazer :)

 

$nome = $_POST["nome"];
$pasta = "../downloads/"; // Pasta dos arquivos

if(!empty($nome)) {
	$name = $pasta . $nome . ".pdf";
	$file = file_exists($name);
               
	if($file) {
		header("Content-type: application/pdf");
		header("Content-Disposition: attachment; filename=" . $nome . ".pdf");
		readfile($name);
	} else {
		echo "O arquivo {$nome}.pdf não existe.";
	}
} else {
	echo "Você não digitou um nome de arquivo.";
}

 

Olá Renato

 

Muito obrigado mesmo pelo seu pronto atendimento

Estou estudando sim, inclusive estou estudando o livro PHP e MySQL Desenvolvimento Web

Não estou gostando muito

Você recomenda um livro ou curso?

 

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.