From 06b983fe1d0541a825bbc22add8c72f2f7c8003c Mon Sep 17 00:00:00 2001 From: Sebastian Lohff Date: Sat, 7 Apr 2012 18:48:48 +0200 Subject: [PATCH] Moved filename generation to extra function --- servefile | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/servefile b/servefile index 390c7cc..c905575 100755 --- a/servefile +++ b/servefile @@ -112,10 +112,8 @@ class FilePutter(BaseHTTPServer.BaseHTTPRequestHandler): if not "file" in fstorage: self.sendResponse(400, "No file found in request.") return - print dir(fstorage["file"]) - print fstorage["file"].filename, - cleanFileName = self.cleanFileName(fstorage["file"].filename) - if cleanFileName == "": + destFileName = self.getTargetName(fstorage["file"].filename) + if destFileName == "": self.sendResponse(400, "Filename was empty") return destFileName = self.targetDir + "/" + cleanFileName @@ -140,9 +138,21 @@ class FilePutter(BaseHTTPServer.BaseHTTPRequestHandler): self.end_headers() self.wfile.write(msg) - def cleanFileName(self, fname): - return fname.replace("/", "") - + def getTargetName(self, fname): + cleanFileName = fname.replace("/", "") + if cleanFileName == "": + return "" + destFileName = self.targetDir + "/" + cleanFileName + if not os.path.exists(destFileName): + return destFileName + else: + i = 1 + extraDestFileName = destFileName + "(%s)" % i + while os.path.exists(extraDestFileName): + i += 1 + extraDestFileName = destFileName + "(%s)" % i + return extraDestFileName + # never reached class ThreadedHTTPServer(SocketServer.ThreadingMixIn, BaseHTTPServer.HTTPServer): pass