From beb032eddb63b54cbbf2e2f03040d8f40455bedb Mon Sep 17 00:00:00 2001 From: Las Zenow Date: Wed, 15 Aug 2012 12:29:54 +0200 Subject: [PATCH] Check if the filename exists --- upload.go | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/upload.go b/upload.go index 332d10f..e9f5f93 100644 --- a/upload.go +++ b/upload.go @@ -2,19 +2,30 @@ package main import ( "os" + "strconv" "labix.org/v2/mgo" //"labix.org/v2/mgo/bson" "net/http" ) +func storePath(name string) string { + path := "new/" + name + _, err := os.Stat(path) + for i := 0; err == nil; i++ { + path = "new/" + strconv.Itoa(i) + "_" + name + _, err = os.Stat(path) + } + return path +} + func storeFile(r *http.Request) error { f, header, err := r.FormFile("epub") if err != nil { return err } defer f.Close() - // FIXME: check the name exist - fw, err := os.Create("new/" + header.Filename) + + fw, err := os.Create(storePath(header.Filename)) if err != nil { return err }