iphone usually has upper cased .JPG extension

refactor
This commit is contained in:
Chris Lu 2014-05-15 01:56:08 -07:00
parent 8ff0d17d6a
commit 34e03e7cf6
2 changed files with 7 additions and 6 deletions

View file

@ -2,6 +2,7 @@ package storage
import ( import (
"code.google.com/p/weed-fs/go/glog" "code.google.com/p/weed-fs/go/glog"
"code.google.com/p/weed-fs/go/images"
"code.google.com/p/weed-fs/go/util" "code.google.com/p/weed-fs/go/util"
"encoding/hex" "encoding/hex"
"errors" "errors"
@ -93,7 +94,7 @@ func ParseUpload(r *http.Request) (fileName string, data []byte, mimeType string
modifiedTime, _ = strconv.ParseUint(r.FormValue("ts"), 10, 64) modifiedTime, _ = strconv.ParseUint(r.FormValue("ts"), 10, 64)
return return
} }
func NewNeedle(r *http.Request) (n *Needle, e error) { func NewNeedle(r *http.Request, fixJpgOrientation bool) (n *Needle, e error) {
fname, mimeType, isGzipped := "", "", false fname, mimeType, isGzipped := "", "", false
n = new(Needle) n = new(Needle)
fname, n.Data, mimeType, isGzipped, n.LastModified, e = ParseUpload(r) fname, n.Data, mimeType, isGzipped, n.LastModified, e = ParseUpload(r)
@ -116,6 +117,10 @@ func NewNeedle(r *http.Request) (n *Needle, e error) {
} }
n.SetHasLastModifiedDate() n.SetHasLastModifiedDate()
if fixJpgOrientation && strings.HasSuffix(strings.ToLower(string(n.Name)), ".jpg") {
n.Data = images.FixJpgOrientation(n.Data)
}
n.Checksum = NewCRC(n.Data) n.Checksum = NewCRC(n.Data)
commaSep := strings.LastIndex(r.URL.Path, ",") commaSep := strings.LastIndex(r.URL.Path, ",")

View file

@ -150,16 +150,12 @@ func (vs *VolumeServer) PostHandler(w http.ResponseWriter, r *http.Request) {
writeJsonError(w, r, ve) writeJsonError(w, r, ve)
return return
} }
needle, ne := storage.NewNeedle(r) needle, ne := storage.NewNeedle(r, vs.FixJpgOrientation)
if ne != nil { if ne != nil {
writeJsonError(w, r, ne) writeJsonError(w, r, ne)
return return
} }
if vs.FixJpgOrientation && strings.HasSuffix(string(needle.Name), ".jpg") {
needle.Data = images.FixJpgOrientation(needle.Data)
}
ret := operation.UploadResult{} ret := operation.UploadResult{}
size, errorStatus := topology.ReplicatedWrite(vs.masterNode, vs.store, volumeId, needle, r) size, errorStatus := topology.ReplicatedWrite(vs.masterNode, vs.store, volumeId, needle, r)
if errorStatus == "" { if errorStatus == "" {