Buenas a todos,he estado realizando un scrip que se me ocurrio que tal vez se pueda hacer o tal vez,me paso por la mente,el scrip que quiero hacer es algo sobre descarga de archivos multiples con php o forzar la descarga de multiples extensiones esto es lo que se hace al pasarle un valor a este codigo y forza la descarga
y esta demas decir que para utizarlo se le pasa la ruta dowload?id=nombrearchivo.x
pero ahora viene lo bueno,lo que yo quiero hacer es que!
lo primero seria renombrar nuestro archivo download_multiple.php y con ese archivo cuando yo lo ejecute que me descargue todo lo que se encuentra en ese directorio ya sean .png,.jpg,.zip,.rar,.pdf,.mp3,.css ficheros de multiples extensiones por asi decirlo!
buscando me he encontrado con unos codigos que tal vez alguno de ustedes expertos en el area me pudiera sugerir este es con que estoy tratando:
lo que entiendo por este codigo es que me descarga esos tipos de formatos de archivos,pero no se como implementarlo tambien encontre algo asi creando un arreglo de extensiones de archivos
pero no me funciona siempre me manda aqui y no entiendo si tengo todo bien
die("<b>ERROR!</b> no es posible descargar archivos con la extensión $fExt");
y otra cosa que me gustaria implementar es listar todos los archivos de ese directorio para eso lo hago asi:
de esta manera me lista todo el directorio y de ahi partir para forzar la descarga de todos los ficheros con extensiones que contenga la carpeta! he estado leyendo el api de php pero viene algo parecido pero no le entiendo muy bien! http://php.net/manual/en/function.readfile.php
bueno seguire buscando como implementar para descargar multiples archivos o ficheros con direntes extensiones saludos xd y de antemano gracias!
Código (php) [Seleccionar]
<?php
$enlace ="/".$id;
header ("Content-Disposition: attachment; filename=".$id." ");
header ("Content-Type: application/octet-stream");
header ("Content-Length: ".filesize($enlace));
readfile($enlace);
?>
y esta demas decir que para utizarlo se le pasa la ruta dowload?id=nombrearchivo.x
pero ahora viene lo bueno,lo que yo quiero hacer es que!
lo primero seria renombrar nuestro archivo download_multiple.php y con ese archivo cuando yo lo ejecute que me descargue todo lo que se encuentra en ese directorio ya sean .png,.jpg,.zip,.rar,.pdf,.mp3,.css ficheros de multiples extensiones por asi decirlo!
buscando me he encontrado con unos codigos que tal vez alguno de ustedes expertos en el area me pudiera sugerir este es con que estoy tratando:
Código (php) [Seleccionar]
<?php
$file = $_SERVER["DOCUMENT_ROOT"].'/.../.../'.$_GET['file'];
if(!file) { // File doesn't exist, output error die('file not found'); } else {
//$file_extension = strtolower(substr(strrchr($file,"."),1));
$file_extension = end(explode(".", $file));
switch( $fileExtension)
{
case "pdf": $ctype="application/pdf"; break;
case "exe": $ctype="application/octet-stream"; break;
case "zip": $ctype="application/zip"; break;
case "doc": $ctype="application/msword"; break;
case "xls": $ctype="application/vnd.ms-excel"; break;
case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
case "gif": $ctype="image/gif"; break;
case "png": $ctype="image/png"; break;
case "jpeg":
case "jpg": $ctype="image/jpg"; break;
default: $ctype="application/force-download";
}
nocache_headers();
// Set headers
header("Pragma: public"); // required
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public"); // required for certain browsers
header("Content-Description: File Transfer");
header("Content-Type: $ctype");
header("Content-Disposition: attachment; filename=".$file.";" );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($file));
readfile($file);
} ?>
lo que entiendo por este codigo es que me descarga esos tipos de formatos de archivos,pero no se como implementarlo tambien encontre algo asi creando un arreglo de extensiones de archivos
Código [Seleccionar]
<?php
$extensiones = array("PNG","zip","doc","rar","jpg");
$f = $_GET["f"];
if(strpos($f,"/")!==false){
die("No puedes navegar por otros directorios");
}
$ftmp = explode(".",$f);
$fExt = strtolower($ftmp[count($ftmp)-1]);
if(!in_array($fExt,$extensiones)){
die("<b>ERROR!</b> no es posible descargar archivos con la extensión $fExt");
}
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"$f\"\n");
$fp=fopen("$f", "r");
fpassthru($fp);
?>
pero no me funciona siempre me manda aqui y no entiendo si tengo todo bien
die("<b>ERROR!</b> no es posible descargar archivos con la extensión $fExt");
y otra cosa que me gustaria implementar es listar todos los archivos de ese directorio para eso lo hago asi:
Código [Seleccionar]
<?php
echo "<h3>Index</h3>\n";
echo "<table>\n";
$directorio = opendir(".");
while ($archivo = readdir($directorio))
{
$nombreArch = ucwords($archivo);
$nombreArch = str_replace("..", "Atras", $nombreArch);
echo "<tr>\n<td>\n<a href='$archivo'>\n";
echo " border=0>\n";
echo "<b> $nombreArch</b></a></td>\n";
echo "\n</tr>\n";
}
closedir($directorio);
echo "</table>\n";
?>
de esta manera me lista todo el directorio y de ahi partir para forzar la descarga de todos los ficheros con extensiones que contenga la carpeta! he estado leyendo el api de php pero viene algo parecido pero no le entiendo muy bien! http://php.net/manual/en/function.readfile.php
bueno seguire buscando como implementar para descargar multiples archivos o ficheros con direntes extensiones saludos xd y de antemano gracias!