package file

import (
	"encoding/base64"
	"os"
	"path/filepath"
)

func FileSave(userName, savePath, fileDataBase64 string) error {
	// 获取main.go所在的目录
	currentDir, err := os.Getwd()
	if err != nil {
		return err
	}

	baseDir := filepath.Join(currentDir, "file_library")
	fullFilePath := filepath.Join(baseDir, userName, savePath)

	// 对 base64 编码的文件数据进行解码 base64.StdEncoding.DecodeString()
	fileData, err := base64.StdEncoding.DecodeString(fileDataBase64)
	if err != nil {
		return err
	}

	// 创建目标文件，用于写入解码后的文件内容
	targetFile, err := os.Create(fullFilePath)
	if err != nil {
		return err
	}
	defer targetFile.Close()

	// 将解码后的文件内容写入到目标文件中
	_, err = targetFile.Write(fileData)
	if err != nil {
		return err
	}

	return nil
}
