From 832f1f53c6f3bd4e1323df728f8fe974df6f5dc4 Mon Sep 17 00:00:00 2001 From: substantialnoninfringinguser Date: Wed, 13 May 2009 05:34:33 +0100 Subject: [svn] Modifications to allow survey files to be pulled from another server. By providing directory listing and download functions,. which could also be used by tunnel Copied from http://cucc@cucc.survex.com/svn/trunk/expoweb/troggle/, rev. 8172 by julian @ 1/17/2009 11:25 PM --- expo/view_surveys.py | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 expo/view_surveys.py (limited to 'expo/view_surveys.py') diff --git a/expo/view_surveys.py b/expo/view_surveys.py new file mode 100644 index 0000000..cd3210b --- /dev/null +++ b/expo/view_surveys.py @@ -0,0 +1,44 @@ +import troggle.settings as settings +from django.http import HttpResponse, Http404 +import os + +def listdir(request, path): + try: + l = [] + print settings.FILES, "t", path, "t" + root = os.path.join(settings.FILES, path) + print root + for p in os.listdir(root): + if os.path.isdir(os.path.join(root, p)): + l.append(p + "/") + elif os.path.isfile(os.path.join(root, p)): + l.append(p) + #Ignore non-files and non-directories + return HttpResponse(str(l), mimetype = "text/plain") + except: + try: + return HttpResponse(urllib.urlopen(settings.FILES + "listdir/" + name), mimetype = "text/plain") + except: + raise Http404 + +def upload(request, path): + pass + +def download(request, path): + try: + f = open(os.path.join(settings.FILES, path)) + except: + try: + f = urllib.urlopen(settings.FILES + "download/" + path) + except: + raise Http404 + return HttpResponse(f.read(), mimetype=getMimeType(path.split(".")[-1])) + +def getMimeType(extension): + try: + return {"txt": "text/plain", + "html": "text/html", + }[extension] + except: + print "unknown file type" + return "text/plain" \ No newline at end of file -- cgit v1.2.3