加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
FileItem 3.33 KB
一键复制 编辑 原始数据 按行查看 历史
code-v 提交于 2015-08-31 15:54 . 将 file转换为 byte [] 数据的库
/// <summary>
/// 文件元数据。
/// 可以使用以下几种构造方法:
/// 本地路径:new FileItem("C:/temp.jpg");
/// 本地文件:new FileItem(new FileInfo("C:/temp.jpg"));
/// 字节流:new FileItem("abc.jpg", bytes);
/// </summary>
public class FileItem
{
private string fileName;
private string mimeType;
private byte[] content;
private FileInfo fileInfo;
#region 构造器
/// <summary>
/// 基于本地文件的构造器。
/// </summary>
/// <param name="fileInfo">本地文件</param>
public FileItem(FileInfo fileInfo)
{
if (fileInfo == null || !fileInfo.Exists)
{
throw new ArgumentException("fileInfo is null or not exists!");
}
this.fileInfo = fileInfo;
}
/// <summary>
/// 基于本地文件全路径的构造器。
/// </summary>
/// <param name="filePath">本地文件全路径</param>
public FileItem(string filePath): this(new FileInfo(filePath))
{
}
/// <summary>
/// 基于文件名和字节流的构造器。
/// </summary>
/// <param name="fileName">文件名称(服务端持久化字节流到磁盘时的文件名)</param>
/// <param name="content">文件字节流</param>
public FileItem(string fileName, byte[] content)
{
if (string.IsNullOrEmpty(fileName)) throw new ArgumentNullException("fileName");
if (content == null || content.Length == 0) throw new ArgumentNullException("content");
this.fileName = fileName;
this.content = content;
}
/// <summary>
/// 基于文件名、字节流和媒体类型的构造器。
/// </summary>
/// <param name="fileName">文件名(服务端持久化字节流到磁盘时的文件名)</param>
/// <param name="content">文件字节流</param>
/// <param name="mimeType">媒体类型</param>
public FileItem(string fileName, byte[] content, string mimeType): this(fileName, content)
{
if (string.IsNullOrEmpty(mimeType)) throw new ArgumentNullException("mimeType");
this.mimeType = mimeType;
}
#endregion
public string GetFileName()
{
if (this.fileName == null && this.fileInfo != null && this.fileInfo.Exists)
{
this.fileName = this.fileInfo.FullName;
}
return this.fileName;
}
public string GetMimeType()
{
if (this.mimeType == null)
{
this.mimeType = "application/octet-stream";
}
return this.mimeType;
}
public byte[] GetContent()
{
if (this.content == null && this.fileInfo != null && this.fileInfo.Exists)
{
using (System.IO.Stream fileStream = this.fileInfo.OpenRead())
{
this.content = new byte[fileStream.Length];
fileStream.Read(content, 0, content.Length);
}
}
return this.content;
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化