aboutsummaryrefslogtreecommitdiff
path: root/go/storage/needle.go
diff options
context:
space:
mode:
authoryourchanges <yourchanges@gmail.com>2015-01-10 03:22:16 +0800
committeryourchanges <yourchanges@gmail.com>2015-01-10 03:22:16 +0800
commit7481b7376d0349938a99b08e5dfab0b2009b2e89 (patch)
treedb0d729090c19d692ad0deb2d716f2b9d31cfe31 /go/storage/needle.go
parent9601880e323bbdf9540f2c79fb21d66374245b50 (diff)
downloadseaweedfs-7481b7376d0349938a99b08e5dfab0b2009b2e89.tar.xz
seaweedfs-7481b7376d0349938a99b08e5dfab0b2009b2e89.zip
Fix the first form multi-part item is not a "file type part" problem in "ParseUpload()"
Diffstat (limited to 'go/storage/needle.go')
-rw-r--r--go/storage/needle.go17
1 files changed, 13 insertions, 4 deletions
diff --git a/go/storage/needle.go b/go/storage/needle.go
index 11610dd80..a24169c00 100644
--- a/go/storage/needle.go
+++ b/go/storage/needle.go
@@ -60,11 +60,20 @@ func ParseUpload(r *http.Request) (fileName string, data []byte, mimeType string
return
}
part, fe := form.NextPart()
- if fe != nil {
- glog.V(0).Infoln("Reading Multi part [ERROR]", fe)
- e = fe
- return
+ for {
+ if fe != nil {
+ glog.V(0).Infoln("Reading Multi part [ERROR]", fe)
+ e = fe
+ return
+ }
+
+ if part.FileName() != "" {
+ break //found the first <file type> multi-part
+ }
+
+ part, fe = form.NextPart()
}
+
fileName = part.FileName()
if fileName != "" {
fileName = path.Base(fileName)