边干边学
- api设计模式
- 文件上传处理(
string
vs.slice
) - 时间戳作为字符串
本地文件上传移植后工作正常(不再维护的SDK还是可以正常工作——具体的原理后续再研究)。
仿现有逻辑(添加URL前缀作为分类;定义处理请求的方法)添加上传文件的API接口——
func InitRouter(router *mux.Router) {
poolRoute := router.PathPrefix("/pool").Subrouter()
poolRoute.UseEncodedPath()
poolRoute.HandleFunc("/file/upload", UploadFile)
}
[上传文件获取方式](// https://tutorialedge.net/golang/go-file-upload-tutorial/),对比起来Java看起来是简单不少
#获取form文件
file, handler, err := r.FormFile("file")
#获取参数列表
vars := mux.Vars(r)
查看对象类型(另外这个站点有很多有用的基础信息)
本身的上传接口设计是“充分”的:本地文件上传,利用反射处理为string格式;如果是字节流,相当于slice类型(一开始传递的参数错误:将multipart.File
对象直接传递进去,被认为是struct类型)
时间戳作为字符串——
func nowAsString() string {
// .000将保留末尾的0值;.999将忽略末尾的0值
now := time.Now().Format("2006-01-02 15:04:05.000")
// 两个一组,使用后者替换前者
replacer := strings.NewReplacer("-", "", ":", "", ".", "", " ", "")
return replacer.Replace(now)
}
网友评论