diff options
author | JoramWilander <jwawilander@gmail.com> | 2015-07-17 15:55:06 -0400 |
---|---|---|
committer | JoramWilander <jwawilander@gmail.com> | 2015-07-21 19:22:04 -0400 |
commit | c63fbd4ccc5e7a11c4ce15fe7d19a3daf4e5c45e (patch) | |
tree | 86c79a43ded7407c2c9b955072f225762721b2d0 | |
parent | edf26b4bc6f997d3dc2927b24e5787e6f66f2eb6 (diff) | |
download | chat-c63fbd4ccc5e7a11c4ce15fe7d19a3daf4e5c45e.tar.gz chat-c63fbd4ccc5e7a11c4ce15fe7d19a3daf4e5c45e.tar.bz2 chat-c63fbd4ccc5e7a11c4ce15fe7d19a3daf4e5c45e.zip |
add proper url encoding for filenames
-rw-r--r-- | api/file.go | 5 | ||||
-rw-r--r-- | utils/urlencode.go | 19 |
2 files changed, 23 insertions, 1 deletions
diff --git a/api/file.go b/api/file.go index 4fead4627..2abaca709 100644 --- a/api/file.go +++ b/api/file.go @@ -103,7 +103,9 @@ func uploadFile(c *Context, w http.ResponseWriter, r *http.Request) { imageDataList = append(imageDataList, buf.Bytes()) } - fileUrl := "/" + channelId + "/" + c.Session.UserId + "/" + uid + "/" + url.QueryEscape(files[i].Filename) + encName := utils.UrlEncode(files[i].Filename) + + fileUrl := "/" + channelId + "/" + c.Session.UserId + "/" + uid + "/" + encName resStruct.Filenames = append(resStruct.Filenames, fileUrl) } @@ -264,6 +266,7 @@ func asyncGetFile(path string, fileData chan []byte) { go func() { data, getErr := readFile(path) if getErr != nil { + l4g.Error(getErr) fileData <- nil } else { fileData <- data diff --git a/utils/urlencode.go b/utils/urlencode.go new file mode 100644 index 000000000..63a8f7880 --- /dev/null +++ b/utils/urlencode.go @@ -0,0 +1,19 @@ +// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved. +// See License.txt for license information. + +package utils + +import ( + "net/url" + "strings" +) + +func UrlEncode(str string) string { + strs := strings.Split(str, " ") + + for i, s := range strs { + strs[i] = url.QueryEscape(s) + } + + return strings.Join(strs, "%20") +} |