类型 *gin.Context 没有字段或方法 SaveUploadedFile

type *gin.Context has no field or method SaveUploadedFile

我的代码在我的计算机上运行良好,但在我将代码移至 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
    }

我已经将服务器上的go升级到1.8.3(与我桌面上的go版本相同),之后更新了gin,希望能解决问题。但它没有。

这是我的 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,但得到同样的错误。

您的服务器似乎使用的是 gin 的旧代码库。刚刚检查了 gin 提交历史。

方法 SaveUploadedFile 添加了 5 days ago。因此,执行以下命令以在您的服务器上提取最新的代码库。

go get -u github.com/gin-gonic/gin

然后编译。