crear file en la PC del cliente

linyujac11
17 de Noviembre del 2004
Que tal,
se puede crear un archivo(guardar una imagen) en la PC del cliente?. La idea es que el usuario puedea grabar una imagen en un archivo (jpg) en su PC.

Gracias.
Jorge.

caid
17 de Noviembre del 2004
Pues no se puede crear directamente, lo más que puedes hacer es ofrecerle el fichero para descarga. Tienes dos opciones:

1- Escribes el fichero en algún directorio del servidor, y le das un enlace al cliente.

2- Puedes enviarle el contenido del fichero directamente, indicando el tipo MIME al principio. Por ejemplo, header("Content-type: image/jpeg");

El problema del segundo método es que el navegador reaccionará en función del tipo de fichero. En el caso de ficheros ZIP, por ejemplo, lo normal es que en el navegador se abra una ventana preguntando dónde se quiere guardar el fichero en disco (lo normal de cualquier descarga). Pero en el caso de una imagen JPEG, el navegador se limitará a visualizarla.

Saludos.

eth0
17 de Noviembre del 2004
A no ser que se especifique como Content-Type un tipo MIME que no exista. Por ejemplo hay muchos sitios donde se usa application/x-msdownload, que provoca que el navegador, al no saber qué tipo de fichero se está enviando, opte por no comerse la cabeza y mostrar el diálogo de descarga, aunque sea una imagen.

El hurgar y meterse con el disco del usuario provocaría tremendos problemas de seguridad, piénsalo. Únicamente podrás hacerlo mediante aplicaciones ActiveX incrustadas en las páginas o con applets Java firmados.

La mejor solución desde luego es la segunda (applets Java firmados): plantea menos problemas de seguridad y da más confianza al usuario. Pero hay que tener un certificado emitido por una entidad de certificación, como VeriSign o Thawte, y eso cuesta dinero.