Lectura / escritura de archivos usando jQuery


¿Hay alguna forma de obtener jQuery para obtener información desde y hacia un archivo? Es posible? ¿Cómo?

 59
Author: Yi Jiang, 2009-02-24

7 answers

No, JavaScript no tiene acceso a escribir archivos, ya que esto sería un gran riesgo de seguridad, por decir lo menos. Si desea obtener / almacenar información del lado del servidor, sin embargo, ciertamente puede hacer una llamada Ajax a un PHP/ASP/Python/etc. script que luego puede obtener / almacenar los datos en el servidor. Si se refería a almacenar datos en el equipo cliente, esto es imposible solo con JavaScript. Sospecho que Flash / Java puede ser capaz de, pero no estoy seguro.

Si solo está tratando de almacenar una pequeña cantidad de información para un período de tiempo no confiable con respecto a un usuario específico, creo que desea API de almacenamiento web o cookies. Sin embargo, no estoy seguro por su pregunta de lo que está tratando de lograr.

 72
Author: Paolo Bergantino,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-25 13:46:58

Sí es posible.

La técnica se describe a continuación

Http://jquery.tiddlywiki.org/twFile.html

 36
Author: ja.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-11-23 14:44:46

Tanto HTML5 como Google Gears agregan capacidades de almacenamiento local, principalmente mediante una API SQLite integrada.

 15
Author: Javier,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-24 16:22:21

Esta función Javascript presenta un cuadro de diálogo" Guardar como " al usuario que ejecuta esta función a través de su navegador. El usuario presiona OK y el archivo se guarda en el lado del servidor.

Esto solía funcionar con todos los navegadores, pero ahora solo funciona con IE. El siguiente código es un riesgo de seguridad, si javascript puede guardar datos en el lado del servidor, un hacker cross site scripting podría poseer sus servidores. Firefox y Chrome ha tapado el agujero, pero IE aún no lo ha hecho tan.

// content is the data (a string) you'll write to file.
// filename is a string filename to write to on server side.
// This function uses iFrame as a buffer, it fills it up with your content
// and prompts the user to save it out.
function save_content_to_file(content, filename){
    var dlg = false;
    with(document){
     ir=createElement('iframe');
     ir.id='ifr';
     ir.location='about.blank';
     ir.style.display='none';
     body.appendChild(ir);
      with(getElementById('ifr').contentWindow.document){
           open("text/plain", "replace");
           charset = "utf-8";
           write(content);
           close();
           document.charset = "utf-8";
           dlg = execCommand('SaveAs', false, filename);
       }
       body.removeChild(ir);
     }
    return dlg;
}

Invoca la función así:

msg =  "I am the president of tautology club.";
save_content_to_file(msg, "C:\\test");
 10
Author: Eric Leschinski,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-05-10 13:05:30

Tendrá que manejar el acceso a su archivo a través de lenguaje de programación web, como PHP o ASP.net.

Para configurar esto, debes:

  • Cree un script que maneje la lectura y escritura del archivo. Esto debe ser visible para el navegador.

  • Envíe solicitudes jQuery ajax a ese script que escriba o lea datos. Tendría que pasar toda su información de lectura / escritura a través de los parámetros de la solicitud. Puedes aprender más sobre esto en jQuery documentación ajax.

Asegúrese de desinfectar cualquier dato que esté almacenando, ya que esto podría ser un riesgo de seguridad. Sin embargo, esto es realmente solo almacenamiento de datos estándar de archivo plano, y no es necesariamente tan inusual.

Como Paolo señaló, no hay forma de leer/escribir directamente en un archivo a través de jQuery o cualquier otro tipo de javascript.

 9
Author: jonstjohn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-24 15:55:12

Las cookies son su mejor opción. Busque el plugin de cookies de jquery.

Las cookies están diseñadas para este tipo de situaciones you desea mantener alguna información sobre este cliente en el lado del cliente. Solo tenga en cuenta que las cookies se pasan de un lado a otro en cada solicitud web, por lo que no puede almacenar grandes cantidades de datos allí. Pero una simple respuesta a una pregunta debería estar bien.

 5
Author: Clyde,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-24 15:54:41

Si desea hacer esto sin un montón de procesamiento del lado del servidor dentro de la página, podría ser una idea factible soplar el valor del texto en un campo oculto (utilizando PHP). A continuación, puede utilizar jQuery para procesar el valor del campo oculto.

Lo que flota su barco:)

 1
Author: Josh Stodola,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-24 18:18:31