Browse Source

fix:修复获取不到链接文件bug

master
刘子旺 7 months ago
parent
commit
abfc92a7fa
  1. 28
      godo/files/pwdfile.go

28
godo/files/pwdfile.go

@ -6,14 +6,14 @@ import (
"godo/libs" "godo/libs"
"net/http" "net/http"
"strconv" "strconv"
"strings"
) )
// 加密读
func HandleReadFile(w http.ResponseWriter, r *http.Request) { func HandleReadFile(w http.ResponseWriter, r *http.Request) {
// 初始值 // 初始值
path := r.URL.Query().Get("path") path := r.URL.Query().Get("path")
fPwd := r.Header.Get("fPwd") fPwd := r.Header.Get("filePwd")
salt := GetSalt(r) salt := GetSalt(r)
hasPwd, err := GetPwdFlag() hasPwd, err := GetPwdFlag()
if err != nil { if err != nil {
@ -38,12 +38,14 @@ func HandleReadFile(w http.ResponseWriter, r *http.Request) {
libs.HTTPError(w, http.StatusNotFound, err.Error()) libs.HTTPError(w, http.StatusNotFound, err.Error())
return return
} }
fileData := string(fileContent)
// 无加密情况 // 无加密情况
if !hasPwd { if !hasPwd {
// 直接base64编码原文返回 // 判断文件开头是否以link:开头
data := base64.StdEncoding.EncodeToString(fileContent) if !strings.HasPrefix(fileData, "link::") {
resp := libs.APIResponse{Message: "success", Data: data} fileData = base64.StdEncoding.EncodeToString(fileContent)
}
resp := libs.APIResponse{Message: "success", Data: fileData}
json.NewEncoder(w).Encode(resp) json.NewEncoder(w).Encode(resp)
return return
} }
@ -63,10 +65,14 @@ func HandleReadFile(w http.ResponseWriter, r *http.Request) {
} }
// 3. base64编码后返回 // 3. base64编码后返回
content := base64.StdEncoding.EncodeToString(fileContent) // 判断文件开头是否以link:开头
fileData = string(fileContent)
if !strings.HasPrefix(fileData, "link::") {
fileData = base64.StdEncoding.EncodeToString(fileContent)
}
// 初始响应 // 初始响应
res := libs.APIResponse{Code: 0, Message: "success", Data: content} res := libs.APIResponse{Code: 0, Message: "success", Data: fileData}
json.NewEncoder(w).Encode(res) json.NewEncoder(w).Encode(res)
} }
@ -116,7 +122,11 @@ func HandleChangeFilePwd(w http.ResponseWriter, r *http.Request) {
func HandleSetIsPwd(w http.ResponseWriter, r *http.Request) { func HandleSetIsPwd(w http.ResponseWriter, r *http.Request) {
isPwd := r.URL.Query().Get("ispwd") isPwd := r.URL.Query().Get("ispwd")
// 0非加密机器 1加密机器 // 0非加密机器 1加密机器
isPwdValue, _ := strconv.Atoi(isPwd) isPwdValue, err := strconv.Atoi(isPwd)
if err != nil {
libs.HTTPError(w, http.StatusBadRequest, err.Error())
return
}
var isPwdBool bool var isPwdBool bool
if isPwdValue == 0 { if isPwdValue == 0 {
isPwdBool = false isPwdBool = false

Loading…
Cancel
Save