前言与注意事项
大文件上传到服务器,往往需要将文件按一定大小切割成小文件,将小文件上传到服务器后,再合并成原来的文件;一定要按切片顺序合并,下面合成的代码片段并未对文件名进行排序,切片超过10个时,合成视频的就有问题了。
使用方式
上代码
package main
import (
"flag"
"fmt"
"io/ioutil"
"math"
"os"
"path/filepath"
)
const chunkSize = 1024 * 1024 // 将文件按 1M 大小进行切割
var (
action string
infile string
outfile string
)
func split(infile string) {
if infile == "" {
panic("请输入正确的文件名")
}
fileInfo, err := os.Stat(infile)
if err != nil {
if os.IsNotExist(err) {
panic("文件不存在")
}
panic(err)
}
num := math.Ceil(float64(fileInfo.Size()) / chunkSize)
fi, err := os.OpenFile(infile, os.O_RDONLY, os.ModePerm)
if err != nil {
fmt.Println(err)
return
本文介绍了如何使用GoLang进行大文件的拆分和合并操作,特别是在上传大文件到服务器时的场景。强调了拆分后的小文件需按顺序合并,并提供了一个未考虑文件名排序的代码片段,当切片数量超过10个时,可能导致合并问题。同时,给出了编译和执行的简单说明。
订阅专栏 解锁全文

452

被折叠的 条评论
为什么被折叠?



