Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Grabar archivo en ruta seleccionada

Estas en el tema de Grabar archivo en ruta seleccionada en el foro de PHP en Foros del Web. Si en PHP estoy creando un archivo CSV, como hago para grabarlo en una ruta que yo desee? Algo así como un Guardar Cómo? Código ...
  #1 (permalink)  
Antiguo 25/10/2017, 17:16
Avatar de bandolera  
Fecha de Ingreso: abril-2009
Mensajes: 604
Antigüedad: 12 años, 7 meses
Puntos: 7
Pregunta Grabar archivo en ruta seleccionada

Si en PHP estoy creando un archivo CSV, como hago para grabarlo en una ruta que yo desee?
Algo así como un Guardar Cómo?
Código PHP:
$archivo fopen('file_salida.csv''w+');
fputs($archivo"campo1, campo2"); 
__________________
Todos somos iguales. NO! a la violencia de género.
  #2 (permalink)  
Antiguo 25/10/2017, 19:55
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Grabar archivo en ruta seleccionada

Cuando usas fopen, con su argumento "w+" abre un archivo lectura/escritura y borra todo su contenido, de no existir lo crea.

Entonces si tu haces esto
fopen(file, w+)

Se generara el archivo en la carpeta raiz en donde estas ejecutando el script php. para cambiar la direccion basta con indicar donde deseas abrir y/o crear el archivo.
Ejemplos:

Código PHP:
Ver original
  1. fopen("../archivos/archivo.csv"); //este abre en la carpeta padre (algunos dicen carpeta atras) en subcarpeta "archivos"
  2.  
  3. //Otro ejemplo
  4.  
  5. fopen("archivos/subcarpeta/archivo.csv");

Generalizando:

Código PHP:
Ver original
  1. $dir = "some/dir/"; //directory of file put slash (/) at end
  2. $file = "file.csv"; //the file name
  3.  
  4. $fp = @fopen($dir.$file,"w+");
  5. if($fp != false){
  6. //do whatever u want
  7. }
  #3 (permalink)  
Antiguo 26/10/2017, 10:01
Avatar de bandolera  
Fecha de Ingreso: abril-2009
Mensajes: 604
Antigüedad: 12 años, 7 meses
Puntos: 7
Respuesta: Grabar archivo en ruta seleccionada

Cita:
Iniciado por alvaro_trewhela Ver Mensaje
Cuando usas fopen, con su argumento "w+" abre un archivo lectura/escritura y borra todo su contenido, de no existir lo crea.

Entonces si tu haces esto
fopen(file, w+)

Se generara el archivo en la carpeta raiz en donde estas ejecutando el script php. para cambiar la direccion basta con indicar donde deseas abrir y/o crear el archivo.
Ejemplos:

Código PHP:
Ver original
  1. fopen("../archivos/archivo.csv"); //este abre en la carpeta padre (algunos dicen carpeta atras) en subcarpeta "archivos"
  2.  
  3. //Otro ejemplo
  4.  
  5. fopen("archivos/subcarpeta/archivo.csv");

Generalizando:

Código PHP:
Ver original
  1. $dir = "some/dir/"; //directory of file put slash (/) at end
  2. $file = "file.csv"; //the file name
  3.  
  4. $fp = @fopen($dir.$file,"w+");
  5. if($fp != false){
  6. //do whatever u want
  7. }
Gracias por tu respuesta.
Tengo dos consultas:
1) Al crear el archivo csv, quiero que si ya existe, lo sobreescriba, es decir lo anterio se pierte y genera el nuevo. Eso lo logro con w+ ? No me queda claro.
2) Entiendo que hay que darle la ruta, pero y si quiero que a través del aplicativo se escoja la carpeta destino para grabar el archivo. Cómo lo haría?
__________________
Todos somos iguales. NO! a la violencia de género.
  #4 (permalink)  
Antiguo 26/10/2017, 10:24
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 12 años, 2 meses
Puntos: 214
Respuesta: Grabar archivo en ruta seleccionada

Cita:
Iniciado por bandolera Ver Mensaje
Gracias por tu respuesta.
Tengo dos consultas:
1) Al crear el archivo csv, quiero que si ya existe, lo sobreescriba, es decir lo anterio se pierte y genera el nuevo. Eso lo logro con w+ ? No me queda claro.
2) Entiendo que hay que darle la ruta, pero y si quiero que a través del aplicativo se escoja la carpeta destino para grabar el archivo. Cómo lo haría?
1. Es correcto, el modo w crea el archivo si no existe.
Y si existiera, lo sobreescribe.

2. En cuanto a la ruta, cuando se genera el archivo csv este queda inicialmente en alguna ubicación del server.
Lo que se podría hacer es generarlo y luego forzar la descarga, y
que ahí si el usuario seleccione en cual carpeta de su disco lo quiere guardar.
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #5 (permalink)  
Antiguo 26/10/2017, 11:47
Avatar de bandolera  
Fecha de Ingreso: abril-2009
Mensajes: 604
Antigüedad: 12 años, 7 meses
Puntos: 7
Pregunta Respuesta: Grabar archivo en ruta seleccionada

Cita:
Iniciado por mortiprogramador Ver Mensaje
1. Es correcto, el modo w crea el archivo si no existe.
Y si existiera, lo sobreescribe.

2. En cuanto a la ruta, cuando se genera el archivo csv este queda inicialmente en alguna ubicación del server.
Lo que se podría hacer es generarlo y luego forzar la descarga, y
que ahí si el usuario seleccione en cual carpeta de su disco lo quiere guardar.
Y cómo hago para forzar la descarga?
Cómo hago eso?
Para subir un archivo a la BD utilizo un
Código HTML:
input type="file"
capturo la ruta.
Pero para descargar cómo lo haría?
__________________
Todos somos iguales. NO! a la violencia de género.
  #6 (permalink)  
Antiguo 26/10/2017, 12:23
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 12 años, 2 meses
Puntos: 214
Respuesta: Grabar archivo en ruta seleccionada

Cita:
Iniciado por bandolera Ver Mensaje
Y cómo hago para forzar la descarga?
Cómo hago eso?
Para subir un archivo a la BD utilizo un
Código HTML:
input type="file"
capturo la ruta.
Pero para descargar cómo lo haría?
Revisa esto
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Etiquetas: nombre, ruta
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:39.