我的代码在我的计算机上工作正常,但在我将代码移到debian服务器后,我的服务器上出现了编译时错误:
type *gin.Context has no field or method SaveUploadedFile
我使用sample gin code来保存文件:
if err := c.SaveUploadedFile(file, file.Filename); err != nil {
c.String(http.StatusBadRequest, fmt.Sprintf("upload file err: %s", err.Error()))
return
}
我已升级到服务器上的1.8.3(与我的桌面上的版本相同)并随后更新了杜松子酒,希望能解决问题。但它没有。
这是我的go env
:
root@s1:~# go env
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/srv/go"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0"
CXX="g++"
CGO_ENABLED="1"
PKG_CONFIG="pkg-config"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
我也尝试过:
rm -rf $GOPATH/pkg/*
我也试过了go build -a
但是得到了同样的错误。
所以我一言不发,感谢你提示解决这个问题。
答案 0 :(得分:4)
您的服务器似乎正在使用杜松子酒的旧代码库。刚检查了杜松子酒提交历史。
方法SaveUploadedFile
添加了5 days ago。因此,执行以下命令以在服务器上提取最新的代码库。
go get -u github.com/gin-gonic/gin
然后编译它。