tft每日頭條

 > 科技

 > golang發送靜态文件

golang發送靜态文件

科技 更新时间:2024-08-08 22:18:23

golang發送靜态文件?package main import ( "archive/zip" "io" "os" "path/Filepath" "strings" ) //zip壓縮 func Zip(srcFile string, destZip string) error { zipfile, err := os.Create(destZip) if err != nil { return err } defer zipfile.Close() archive := zip.NewWriter(zipfile) defer archive.Close() filepath.Walk(srcFile, func(path string, info os.FileInfo, err error) error { if err != nil { return err } Header, err := zip.FileInfoHeader(info) if err != nil { return err } header.Name = path if info.IsDir() { header.Name = "/" } else { header.Method = zip.Deflate } writer, err := archive.CreateHeader(header) if err != nil { return err } if !info.IsDir() { file, err := os.Open(path) if err != nil { return err } defer file.Close() _, err = io.Copy(writer, file) } return err }) return err } //zip解壓 func Unzip(zipFile string, destDir string) error { zipReader, err := zip.OpenReader(zipFile) if err != nil { return err } defer zipReader.Close() for _, f := range zipReader.File { filePath := filepath.Join(destDir, f.Name) filenameList := strings.Split(f.Name, "_") filename := "./static/https_tcl/" filenameList[0] "_https_tcl" filepath.Ext(f.Name) if f.FileInfo().IsDir() { os.MkdirAll(filePath, os.ModePerm) } else { if err = os.MkdirAll(filepath.Dir(filePath), os.ModePerm); err != nil { return err } inFile, err := f.Open() if err != nil { return err } defer inFile.Close() outFile, err := os.OpenFile(filename, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, f.Mode()) if err != nil { return err } defer outFile.Close() _, err = io.Copy(outFile, inFile) if err != nil { return err } } } return nil } ,我來為大家科普一下關于golang發送靜态文件?以下内容希望對你有幫助!

golang發送靜态文件(golang實現zip的壓縮和解壓)1

golang發送靜态文件

package main import ( "archive/zip" "io" "os" "path/Filepath" "strings" ) //zip壓縮 func Zip(srcFile string, destZip string) error { zipfile, err := os.Create(destZip) if err != nil { return err } defer zipfile.Close() archive := zip.NewWriter(zipfile) defer archive.Close() filepath.Walk(srcFile, func(path string, info os.FileInfo, err error) error { if err != nil { return err } Header, err := zip.FileInfoHeader(info) if err != nil { return err } header.Name = path if info.IsDir() { header.Name = "/" } else { header.Method = zip.Deflate } writer, err := archive.CreateHeader(header) if err != nil { return err } if !info.IsDir() { file, err := os.Open(path) if err != nil { return err } defer file.Close() _, err = io.Copy(writer, file) } return err }) return err } //zip解壓 func Unzip(zipFile string, destDir string) error { zipReader, err := zip.OpenReader(zipFile) if err != nil { return err } defer zipReader.Close() for _, f := range zipReader.File { filePath := filepath.Join(destDir, f.Name) filenameList := strings.Split(f.Name, "_") filename := "./static/https_tcl/" filenameList[0] "_https_tcl" filepath.Ext(f.Name) if f.FileInfo().IsDir() { os.MkdirAll(filePath, os.ModePerm) } else { if err = os.MkdirAll(filepath.Dir(filePath), os.ModePerm); err != nil { return err } inFile, err := f.Open() if err != nil { return err } defer inFile.Close() outFile, err := os.OpenFile(filename, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, f.Mode()) if err != nil { return err } defer outFile.Close() _, err = io.Copy(outFile, inFile) if err != nil { return err } } } return nil }

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved