From 90da85e8563298a23e860db08db952f9a6b46f2d Mon Sep 17 00:00:00 2001 From: substantialnoninfringinguser Date: Wed, 13 May 2009 05:58:58 +0100 Subject: [svn] revert some of the changes (href element) so that the links work Copied from http://cucc@cucc.survex.com/svn/trunk/expoweb/troggle/, rev. 8267 by julian @ 3/11/2009 10:44 AM --- expo/view_surveys.py | 51 ++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 40 insertions(+), 11 deletions(-) (limited to 'expo/view_surveys.py') diff --git a/expo/view_surveys.py b/expo/view_surveys.py index 388efa9..8bf3cc3 100644 --- a/expo/view_surveys.py +++ b/expo/view_surveys.py @@ -94,35 +94,64 @@ def jgtfile(request, f): return HttpResponse("unknown file::%s::" % f, mimetype = "text/plain") -def SaveImageInDir(name, imgdir, fdata): - print ("hihihihi", fdata, settings.SURVEYS) - print os.path.join(settings.SURVEYS, imgdir) - if not os.path.isdir(os.path.join(settings.SURVEYS, imgdir)): - print "*** Must have directory '%s' in '%s'" % (imgdir, settings.SURVEYS) +def UniqueFile(fname): while True: - fname = os.path.join(settings.SURVEYS, imgdir, name) if not os.path.exists(fname): break - mname = re.match("(.*?)(?:-(\d+))?\.(png|jpg|jpeg)$(?i)", name) + mname = re.match("(.*?)(?:-(\d+))?\.(png|jpg|jpeg)$(?i)", fname) if mname: - name = "%s-%d.%s" % (mname.group(1), int(mname.group(2) or "0") + 1, mname.group(3)) + fname = "%s-%d.%s" % (mname.group(1), int(mname.group(2) or "0") + 1, mname.group(3)) + return fname + + +# join it all up and then split them off for the directories that don't exist +# anyway, this mkdir doesn't work +def SaveImageInDir(name, imgdir, project, fdata, bbinary): + print ("hihihihi", fdata, settings.SURVEYS) + fimgdir = os.path.join(settings.SURVEYS, imgdir) + if not os.path.isdir(fimgdir): + print "*** Making directory", fimgdir + os.path.mkdir(fimgdir) + fprojdir = os.path.join(fimgdir, project) + if not os.path.isdir(fprojdir): + print "*** Making directory", fprojdir + os.path.mkdir(fprojdir) + print "hhh" + + fname = os.path.join(fprojdir, name) + print fname, "fff" + fname = UniqueFile(fname) + + p2, p1 = os.path.split(fname) + p3, p2 = os.path.split(p2) + p4, p3 = os.path.split(p3) + res = os.path.join(p3, p2, p1) + print "saving file", fname - fout = open(fname, "wb") + fout = open(fname, (bbinary and "wb" or "w")) fout.write(fdata.read()) fout.close() res = os.path.join(imgdir, name) return res.replace("\\", "/") + +# do we want to consider saving project/field rather than field/project def jgtuploadfile(request): filesuploaded = [ ] - project, user, tunnelversion = request.POST["project"], request.POST["user"], request.POST["tunnelversion"] + project, user, password, tunnelversion = request.POST["tunnelproject"], request.POST["tunneluser"], request.POST["tunnelpassword"], request.POST["tunnelversion"] print (project, user, tunnelversion) for uploadedfile in request.FILES.values(): if uploadedfile.field_name in ["tileimage", "backgroundimage"] and \ uploadedfile.content_type in ["image/png", "image/jpeg"]: fname = user + "_" + re.sub("[\\\\/]", "-", uploadedfile.name) # very escaped \ print fname - fileuploaded = SaveImageInDir(fname, uploadedfile.field_name, uploadedfile) + fileuploaded = SaveImageInDir(fname, uploadedfile.field_name, project, uploadedfile, True) + filesuploaded.append(settings.URL_ROOT + "/jgtfile/" + fileuploaded) + if uploadedfile.field_name in ["sketch"] and \ + uploadedfile.content_type in ["text/plain"]: + fname = user + "_" + re.sub("[\\\\/]", "-", uploadedfile.name) # very escaped \ + print fname + fileuploaded = SaveImageInDir(fname, uploadedfile.field_name, project, uploadedfile, False) filesuploaded.append(settings.URL_ROOT + "/jgtfile/" + fileuploaded) #print "FF", request.FILES #print ("FFF", request.FILES.values()) -- cgit v1.2.3