descarg CSV

BUENAS TRADES

quisiera saber como puedo hacer para realizar una descarga de un archivo csv a mi servidor directamente sin que el navegador abra la ventna de dialogo de la descarga.

Me han indicado que usando cabeceras pero cuando las uso me aparece la venta del navegador para iniciar la descarga

Agradeceria si tuvieran un ejemplo gracias

Buenas.

Utiliza la función file_put_contents de php y listo.

Un saludo

hola,

gracias por tu respuesta he estado leyendo la documentacion de función file_put_contents de php pero no se especifica en que lado del servidor se guardaria o si creo una carpeta para que se guarde en esta





    if($attachment) {

           

            header( 'Content-Type: text/csv' );

            header( 'Content-Disposition: attachment;filename='.$filename);

            $fp = fopen('php://output', 'w');

        } else {

            $fp = fopen($filename, 'w');

        }




lo tengo de esta manera aun no le implementado la funcion file_put_content

hola mira ya apliaque la funcion de esta manera





  

        if($attachment) {

       

file_put_contents($filename, $query);//filename es el nombre del archivo y query lo que quiero que guarde

			

            $fp = fopen('php://output', 'w');

        } else {

            $fp = fopen($filename, 'w');

        }

        







pero aun no me guarda

Buenas.

1ª - que es eso de en que lado del servidor??? sólo hay 2 lados, el servidor y el cliente. no hay varios lados dentro del servidor.

2ª- si utilizas esta función olvídate de las headers, no se usan.

Esta función escribe un archivo en la ruta que tu especifiques. Teniendo en cuenta la ruta actual, claro.

Debes tener permisos de escritura en el servidor, que supongo que tendrás.

Te escribo un ejemplo de la página oficial de php:




$fichero = 'gente.txt';


$actual = file_get_contents($fichero); // Abre el fichero para obtener el contenido existente


$actual .= "John Smith\n"; // Añade una nueva persona al fichero


file_put_contents($fichero, $actual); // Escribe el contenido al fichero



Si no existe el fichero, elimina la línea de file_get_contents y listo.

Este ejemplo guardará el archivo en el directorio en donde se encuentre el script php que estás ejecutanto.

Si por ejemplo te encuentras en el index.php, y tienes un directorio llamado files, podrías poner como $fichero lo siguiente:




$fichero = "files/nombreFichero.txt";



Si aún así no te crea los archivos, revisa los permisos de escritura del servidor.

Un saludo.