2011-10-16 4 views
1

사이트에서 구문 분석을하고 클라이언트가 내 인터페이스를 통해 편집 할 계획 인 JSON 스크립트가 있습니다 (나중에로드 및 구문 분석을 위해 다시 한 번 표시 할 수 있음). 문제는 Javascript가 파일 시스템에 대한 쓰기 권한을 가지고 있지 않다는 것입니다. 이미 Javascript (및 jQuery)를 사용하여 JSON 파일을 읽는 시스템이 있습니다. 이제는 CGI를 사용하여 나중에 데이터를 저장할 수 있다고 들었습니다. 누군가가 나에게 몇 가지 참조와 깊이있는 설명을 줄 수 있습니까? 나는 일반적으로 CGI에 대해 조금 읽었지만 구체적인 것은 없다.CGI 및 자바 스크립트를 사용하여 파일 저장

도움 주셔서 감사합니다.

답변

1

CGI은 스크립트와 인터페이스하는 방법입니다. 꽤 많이, 당신은 파일을 실행하기 위해 서버를 설정하고, 여러 환경 변수를 설정하고 POST 데이터를 표준 입력에 제공하여 실행하게됩니다. 스크립트는 페이지 헤더와 내용을 출력해야합니다.

CGI 스크립트는 다양한 언어로 작성 될 수 있습니다. Perl은 CGI 스크립트로 유명합니다. 문서가 here에 있습니다. 파이썬은 CGI를 다루기 위해 a cgi module을 가지고있다. 루비도 a CGI package입니다.

다음은 파일에 쓰는 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에 데이터를 저장할 경우 그 자체로서.

관련 문제