使用jQuery写入文本文件

时间:2013-07-20 12:27:39

标签: jquery

我正在尝试使用jQuery读取和写入文本文件。我已经编写了读取文件的函数;但我不能做的是写入文件。我有两个文件read.txtwrite.txt,与代码位于同一文件夹中。

两个jQuery函数(下面是周围的服务器端Perl代码)是:

<!-- language: perl -->

    my $script = qq{

    \$(document).ready(function() {
     \$("#readFile").click(function() {
        \$.get('read.txt', function(data) {
          \$("#container").val(data);
        }, 'text');
     });
    });


   \$.ajax({
    url: './test.pl',
    data: {
        'myString' : "#cont"
    },
    success: function(data, textStatus, jqXHR) {
        alert('string saved to file');
    }
});

    };

    my $q = new CGI;
    print $q->header;
    print $q->start_html(
        -title => "Read a File",
        -style  => {-src => 'css/ui-lightness/jquery-ui-1.10.3.custom.css" rel="stylesheet'},
        -script => [
             {-src => 'js/jquery-1.9.1.js'},
             {-src => 'js/jquery-ui-1.10.3.custom.js'},
        ],
        );
    print $q->start_form;
    print $q->textfield(
        -style => 'font-family:verdana;width:300px;font-size:13px',
        -id => 'container',
        -value => '',
        );
    print $q->button(
        -id       => 'readFile',
        -name     => 'submit_form',
        -value    => 'Read',
        );

    print $q->textfield(
        -style => 'font-family:verdana;width:300px;font-size:13px',
        -id => 'cont',
        -value => '',
        );

    print $q->submit(
        -id       => 'writeFile',
        -name     => 'submit_form',
        -value    => 'Write',
        );
    print $q->script($script);
    print $q->end_html;

test.pl
use CGI ();
my $cgi = CGI->new;
print $cgi->header;
my $string = $cgi->param("myString");
open (FILE, ">", "./write.txt") || die "Could not open: $!";
print FILE $string;
close FILE;

1 个答案:

答案 0 :(得分:8)

出于安全原因,您无法使用Javascript / jQuery写入文件,因为如果可以的话,用户可以轻松更改文件URL以使用其控制台进行编辑并产生相应的损害。有关详细信息,请查看this page

为了解决您的问题,我认为最好的方法是使用ajax发送到远程php文件,即要更新的文件的内容。然后,此文件将执行更新。