package core import ( "io" "os" ) // FileService 提供文件传输服务 type FileService struct{} // FileChunk 表示文件分片 type FileChunk struct { FileName string // 文件名 Data []byte // 数据分片 Offset int64 // 偏移量,用于重组 IsLast bool // 是否为最后一个分片 } // Upload 接收文件分片并写入到本地文件 func (f *FileService) Upload(chunk FileChunk, reply *bool) error { // 打开或创建文件,使用追加模式 file, err := os.OpenFile(chunk.FileName, os.O_WRONLY|os.O_CREATE, 0644) if err != nil { return err } defer file.Close() // 移动到指定偏移量 if _, err := file.Seek(chunk.Offset, io.SeekStart); err != nil { return err } // 写入数据 if _, err := file.Write(chunk.Data); err != nil { return err } *reply = true return nil }