mirror of
https://gitee.com/johng/gf
synced 2026-06-07 10:22:11 +08:00
fix issue in gres.UnpackContent; fix issue in gtime.NewFromTimeStamp
This commit is contained in:
@ -91,9 +91,18 @@ func Unpack(path string) ([]*File, error) {
|
||||
|
||||
// UnpackContent unpacks the content to []*File.
|
||||
func UnpackContent(content string) ([]*File, error) {
|
||||
data, err := gcompress.UnGzip(hexStrToBytes(content))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
var data []byte
|
||||
var err error
|
||||
if isHexStr(content) {
|
||||
data, err = gcompress.UnGzip(hexStrToBytes(content))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
} else {
|
||||
data, err = gcompress.UnGzip(gconv.UnsafeStrToBytes(content))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
reader, err := zip.NewReader(bytes.NewReader(data), int64(len(data)))
|
||||
if err != nil {
|
||||
@ -106,6 +115,21 @@ func UnpackContent(content string) ([]*File, error) {
|
||||
return array, nil
|
||||
}
|
||||
|
||||
// isHexStr checks and returns whether given content <s> is hex string.
|
||||
// It returns true if <s> is hex string, or false if not.
|
||||
func isHexStr(s string) bool {
|
||||
var r bool
|
||||
for i := 0; i < len(s); i++ {
|
||||
r = (s[i] >= '0' && s[i] <= '9') ||
|
||||
(s[i] >= 'a' && s[i] <= 'f') ||
|
||||
(s[i] >= 'A' && s[i] <= 'F')
|
||||
if !r {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
// bytesToHexString converts binary content to hex string content.
|
||||
func bytesToHexStr(b []byte) string {
|
||||
dst := make([]byte, hex.EncodedLen(len(b)))
|
||||
|
||||
Reference in New Issue
Block a user