forked from expo/troggle
[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
This commit is contained in:
44
expo/view_surveys.py
Normal file
44
expo/view_surveys.py
Normal file
@@ -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"
|
||||
Reference in New Issue
Block a user