aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--weed/storage/needle.go12
-rw-r--r--weed/storage/needle_parse_multipart.go7
2 files changed, 13 insertions, 6 deletions
diff --git a/weed/storage/needle.go b/weed/storage/needle.go
index 7b1b0ba94..46ba933ca 100644
--- a/weed/storage/needle.go
+++ b/weed/storage/needle.go
@@ -10,6 +10,7 @@ import (
"github.com/chrislusf/seaweedfs/weed/images"
. "github.com/chrislusf/seaweedfs/weed/storage/types"
+ "io/ioutil"
)
const (
@@ -57,7 +58,16 @@ func ParseUpload(r *http.Request) (
}
}
- fileName, data, mimeType, isGzipped, isChunkedFile, e = parseMultipart(r)
+ isChunkedFile, _ = strconv.ParseBool(r.FormValue("cm"))
+
+ if r.Method == "POST" {
+ fileName, data, mimeType, isGzipped, e = parseMultipart(r, isChunkedFile)
+ } else {
+ isGzipped = false
+ mimeType = r.Header.Get("Content-Type")
+ fileName = ""
+ data, e = ioutil.ReadAll(r.Body)
+ }
if e != nil {
return
}
diff --git a/weed/storage/needle_parse_multipart.go b/weed/storage/needle_parse_multipart.go
index 0a7c0fc76..112ec32d4 100644
--- a/weed/storage/needle_parse_multipart.go
+++ b/weed/storage/needle_parse_multipart.go
@@ -8,11 +8,10 @@ import (
"path"
"io/ioutil"
"strings"
- "strconv"
)
-func parseMultipart(r *http.Request) (
- fileName string, data []byte, mimeType string, isGzipped bool, isChunkedFile bool, e error){
+func parseMultipart(r *http.Request, isChunkedFile bool) (
+ fileName string, data []byte, mimeType string, isGzipped bool, e error) {
form, fe := r.MultipartReader()
if fe != nil {
glog.V(0).Infoln("MultipartReader [ERROR]", fe)
@@ -64,8 +63,6 @@ func parseMultipart(r *http.Request) (
}
}
- isChunkedFile, _ = strconv.ParseBool(r.FormValue("cm"))
-
if !isChunkedFile {
dotIndex := strings.LastIndex(fileName, ".")