引入redis服务,支持自动化单元测试
大石头 编写于 2022-03-31 22:56:30
X
using System;
using System.IO;
using NewLife.Data;

namespace NewLife.Http
{
    /// <summary>表单部分</summary>
    public class FormFile
    {
        #region 属性
        /// <summary>名称</summary>
        public String Name { get; set; }

        /// <summary>内容部署</summary>
        public String ContentDisposition { get; set; }

        /// <summary>内容类型</summary>
        public String ContentType { get; set; }

        /// <summary>文件名</summary>
        public String FileName { get; set; }

        /// <summary>数据</summary>
        public Packet Data { get; set; }

        /// <summary>长度</summary>
        public Int64 Length => Data?.Total ?? 0;
        #endregion

        /// <summary>打开数据读取流</summary>
        /// <returns></returns>
        public Stream OpenReadStream() => Data?.GetStream();

        /// <summary>保存到文件</summary>
        /// <param name="fileName"></param>
        public void SaveToFile(String fileName = null)
        {
            if (fileName.IsNullOrEmpty()) fileName = FileName;
            fileName.EnsureDirectory(true);

            using var fs = File.OpenWrite(fileName.GetFullPath());
            Data.CopyTo(fs);
            fs.SetLength(fs.Position);
        }
    }
}