如何在 C# 中将字节数组转换为 HttpPostedFileBase?
How to convert byte array to HttpPostedFileBase in C#?
我正在使用 asp.net MVC 网络应用程序。我的要求是将字节数组转换为 HttpPostedFileBase
。我正在使用文件路径创建字节数组。
我参考了这个问题
(answer by https://whosebug.com/users/2678145/zerratar)
当我使用该代码时,将转换后的文件保存到服务器时出现异常。异常是方法或操作未实现。
我以为我收到了错误,因为转换后的文件的内容类型和文件名返回了 null。
所以我稍微改变了代码。
public class HttpPostedFileForStl : HttpPostedFileBase
{
private readonly byte[] fileBytes;
public HttpPostedFileForStl(byte[] fileBytes, string fileName)
{
this.fileBytes = fileBytes;
this.InputStream = new MemoryStream(fileBytes);
this.FileName = fileName;
}
public override int ContentLength => fileBytes.Length;
public override string FileName { get; }
public override string ContentType { get; } = "application/octet-stream";
public override Stream InputStream { get; }
}
我正在将字节数组和文件名传递给此 class。
现在我在转换后的文件中获得了适当的文件名和内容类型,但异常仍然存在。有人可以帮忙吗?
public class HttpPostedFileBaseCustom : HttpPostedFileBase
{
private byte[] _Bytes;
private String _ContentType;
private String _FileName;
private MemoryStream _Stream;
public override Int32 ContentLength { get { return this._Bytes.Length; } }
public override String ContentType { get { return this._ContentType; } }
public override String FileName { get { return this._FileName; } }
public override Stream InputStream
{
get
{
if(this._Stream == null)
{
this._Stream = new MemoryStream(this._Bytes);
}
return this._Stream;
}
}
public HttpPostedFileBaseCustom(byte[] contentData, String contentType, String fileName)
{
this._ContentType = contentType;
this._FileName = fileName;
this._Bytes = contentData ?? new byte[0];
}
public override void SaveAs(String filename)
{
System.IO.File.WriteAllBytes(filename, this._Bytes);
}
}
我正在使用 asp.net MVC 网络应用程序。我的要求是将字节数组转换为 HttpPostedFileBase
。我正在使用文件路径创建字节数组。
我参考了这个问题
当我使用该代码时,将转换后的文件保存到服务器时出现异常。异常是方法或操作未实现。
我以为我收到了错误,因为转换后的文件的内容类型和文件名返回了 null。
所以我稍微改变了代码。
public class HttpPostedFileForStl : HttpPostedFileBase
{
private readonly byte[] fileBytes;
public HttpPostedFileForStl(byte[] fileBytes, string fileName)
{
this.fileBytes = fileBytes;
this.InputStream = new MemoryStream(fileBytes);
this.FileName = fileName;
}
public override int ContentLength => fileBytes.Length;
public override string FileName { get; }
public override string ContentType { get; } = "application/octet-stream";
public override Stream InputStream { get; }
}
我正在将字节数组和文件名传递给此 class。 现在我在转换后的文件中获得了适当的文件名和内容类型,但异常仍然存在。有人可以帮忙吗?
public class HttpPostedFileBaseCustom : HttpPostedFileBase
{
private byte[] _Bytes;
private String _ContentType;
private String _FileName;
private MemoryStream _Stream;
public override Int32 ContentLength { get { return this._Bytes.Length; } }
public override String ContentType { get { return this._ContentType; } }
public override String FileName { get { return this._FileName; } }
public override Stream InputStream
{
get
{
if(this._Stream == null)
{
this._Stream = new MemoryStream(this._Bytes);
}
return this._Stream;
}
}
public HttpPostedFileBaseCustom(byte[] contentData, String contentType, String fileName)
{
this._ContentType = contentType;
this._FileName = fileName;
this._Bytes = contentData ?? new byte[0];
}
public override void SaveAs(String filename)
{
System.IO.File.WriteAllBytes(filename, this._Bytes);
}
}