58 lines
1.4 KiB
Go
58 lines
1.4 KiB
Go
package handler
|
|
|
|
import (
|
|
"encoding/csv"
|
|
"os"
|
|
"time"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
// csv文件下载
|
|
func DownLoadFile(c *gin.Context) {
|
|
filepath := "./uploads/file.csv" //文件路径
|
|
file, err := os.OpenFile(filepath, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666) //文件打开
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
defer file.Close()
|
|
|
|
WriterCsv := csv.NewWriter(file) //csv文件写入
|
|
// 写入的数据
|
|
str := []string{"xxs", "asfsa"}
|
|
err1 := WriterCsv.Write(str)
|
|
if err1 != nil {
|
|
panic(err)
|
|
|
|
}
|
|
// 刷新
|
|
WriterCsv.Flush()
|
|
c.Header("Content-Type", "application/octet-stream")
|
|
c.Header("Content-Disposition", "attachment; filename=\""+"file.csv"+"\"") //文件名传入数据流
|
|
c.Header("Content-Transfer-Encoding", "binary")
|
|
c.File(filepath) //文件路径
|
|
return
|
|
}
|
|
|
|
// 文件流传输
|
|
func DownLoadFileFlow(c *gin.Context) {
|
|
t := time.Now().Format("2006-01-02")
|
|
filename := "1.csv"
|
|
c.Header("Content-Type", "application/octet-stream")
|
|
c.Header("Content-Disposition", "attachment; filename=\""+t+filename+"\"")
|
|
c.Header("Content-Transfer-Encoding", "binary")
|
|
c.Header("Access-Control-Expose-Headers", "Content-Disposition")
|
|
WriterCsv := csv.NewWriter(c.Writer) //csv文件写入流
|
|
|
|
// 写入的数据
|
|
str := []string{"xxs", "asfsa"}
|
|
err := WriterCsv.Write(str)
|
|
if err != nil {
|
|
panic(err)
|
|
|
|
}
|
|
// 刷新
|
|
WriterCsv.Flush()
|
|
return
|
|
}
|