fix: 文件识别工具
This commit is contained in:
@@ -351,5 +351,6 @@ func ParseUploadFileDir(subPath string) string {
|
||||
// filePath 上传文件路径
|
||||
func ParseUploadFilePath(filePath string) string {
|
||||
prefix, dir := resourceUpload()
|
||||
return strings.Replace(filePath, prefix, dir, 1)
|
||||
absPath := strings.Replace(filePath, prefix, dir, 1)
|
||||
return filepath.ToSlash(absPath)
|
||||
}
|
||||
|
||||
@@ -8,6 +8,55 @@ import (
|
||||
"path/filepath"
|
||||
)
|
||||
|
||||
// UnZip 解 ZIP 压缩文件输出到目录下
|
||||
func UnZip(zipFilePath, dirPath string) error {
|
||||
// 打开ZIP文件进行读取
|
||||
r, err := zip.OpenReader(zipFilePath)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer r.Close()
|
||||
|
||||
// 创建本地输出目录
|
||||
if err := os.MkdirAll(dirPath, 0775); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// 遍历ZIP文件中的每个文件并解压缩到输出目录
|
||||
for _, f := range r.File {
|
||||
// 打开ZIP文件中的文件
|
||||
rc, err := f.Open()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer rc.Close()
|
||||
|
||||
// 创建解压后的文件
|
||||
path := filepath.ToSlash(filepath.Join(dirPath, f.Name))
|
||||
if f.FileInfo().IsDir() {
|
||||
// 如果是目录,创建目录
|
||||
if err := os.MkdirAll(path, 0775); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
if err = os.MkdirAll(filepath.Dir(path), 0775); err != nil {
|
||||
return err
|
||||
}
|
||||
out, err := os.Create(path)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer out.Close()
|
||||
|
||||
if _, err = io.Copy(out, rc); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// CompressZipByFile 将单文件添加到 ZIP 压缩文件
|
||||
func CompressZipByFile(zipFilePath, filePath string) error {
|
||||
// 创建一个新的 ZIP 文件
|
||||
|
||||
Reference in New Issue
Block a user