package libs import ( "fmt" "io" "net/http" "os" "path/filepath" "time" ) type File struct { } // 下载图片到临时文件 func (*File) DownloadImage(url string) (string, error) { resp, err := http.Get(url) if err != nil { return "", err } defer resp.Body.Close() // 创建临时文件 tempDir := os.TempDir() tempFile := filepath.Join(tempDir, fmt.Sprintf("upload-%d.jpg", time.Now().UnixNano())) out, err := os.Create(tempFile) if err != nil { return "", err } defer out.Close() // 复制文件内容 _, err = io.Copy(out, resp.Body) return tempFile, err }