使用CGI和Javascript保存文件

Use CGI and Javascript to save a file

本文关键字:保存文件 Javascript CGI 使用      更新时间:2023-09-26

我有一些JSON脚本,我计划在网站上解析,然后允许客户端通过我的界面编辑它们(稍后加载并再次解析以显示)。问题是,Javascript没有访问写入文件系统的权限。我已经有了一个使用Javascript(和jQuery)读取JSON文件的系统。现在,我听说以后可以使用CGI来保存数据。谁能给我一些参考资料和深入的解释?我读过一些关于CGI的一般内容,但没有特别的。

谢谢你的帮助!

CGI是服务器与脚本交互的一种方式。基本上,您只需将服务器设置为执行文件,它将使用设置的几个环境变量和POST数据发送到其标准输入来执行该文件。脚本应该输出页眉,后面跟着内容。

CGI脚本可以用许多不同的语言编写。Perl以CGI脚本而闻名;这里有相关的文档。Python有一个cgi模块来处理CGI。Ruby也有一个CGI包。

这是一个用Python编写的快速CGI脚本,用于写入文件。您可能想要修改它或将其用作参考,而不是原样使用:

#!/usr/bin/env python
import os
import os.path
import sys
import json
import cgi
# You'll probably want to remove or alter
# the following line for production.
import cgitb; cgitb.enable()
def bad_request():
    print "Status: 400 Bad Request"
    print "Content-Type: application/json"
    print ""
    json.dump({'success': False}, sys.stdout)
    sys.exit(0)
assert 'REQUEST_METHOD' in os.environ
if os.environ['REQUEST_METHOD'] != 'POST':
    bad_request()
form = cgi.FieldStorage()
if 'data' not in form:
    bad_request()
filename = os.path.join(os.path.dirname(__file__), "some_file.json")
with open(filename, "wb") as f:
    f.write(form['data'].value)
print "Content-Type: application/json"
print ""
json.dump({'success': True}, sys.stdout)

如果您使用data参数对其POST,它将把数据保存到与自身相同目录的some_file.json中。