【发布时间】:2019-03-15 20:10:19
【问题描述】:
如何使用 c# 将 byte[] 转换为 HttpPostedFileBase。在这里,我尝试了以下方式。
byte[] bytes = System.IO.File.ReadAllBytes(localPath);
HttpPostedFileBase objFile = (HttpPostedFileBase)bytes;
我得到一个无法隐式转换的错误。
【问题讨论】:
标签: c# asp.net-mvc-4
如何使用 c# 将 byte[] 转换为 HttpPostedFileBase。在这里,我尝试了以下方式。
byte[] bytes = System.IO.File.ReadAllBytes(localPath);
HttpPostedFileBase objFile = (HttpPostedFileBase)bytes;
我得到一个无法隐式转换的错误。
【问题讨论】:
标签: c# asp.net-mvc-4
创建自定义发布文件怎么样? :)
public class MemoryPostedFile : HttpPostedFileBase
{
private readonly byte[] fileBytes;
public MemoryPostedFile(byte[] fileBytes, string fileName = null)
{
this.fileBytes = fileBytes;
this.FileName = fileName;
this.InputStream = new MemoryStream(fileBytes);
}
public override int ContentLength => fileBytes.Length;
public override string FileName { get; }
public override Stream InputStream { get; }
}
你可以像这样简单地使用:
byte[] bytes = System.IO.File.ReadAllBytes(localPath);
HttpPostedFileBase objFile = (HttpPostedFileBase)new MemoryPostedFile(bytes);
【讨论】:
private Stream inputStream; 不需要也未使用。我试图编辑答案,但我发现we are not supposed to edit each others code.
public override int ContentLength => fileBytes.Length; 替换为public override int ContentLength { get return fileBytes.Length; }
public class HttpPostedFileBaseCustom: HttpPostedFileBase
{
MemoryStream stream;
string contentType;
string fileName;
public HttpPostedFileBaseCustom(MemoryStream stream, string contentType, string fileName)
{
this.stream = stream;
this.contentType = contentType;
this.fileName = fileName;
}
public override int ContentLength
{
get { return (int)stream.Length; }
}
public override string ContentType
{
get { return contentType; }
}
public override string FileName
{
get { return fileName; }
}
public override Stream InputStream
{
get { return stream; }
}
}
byte[] bytes = System.IO.File.ReadAllBytes(localPath);
var contentTypeFile = "image/jpeg";
var fileName = "images.jpeg";
HttpPostedFileBase objFile = (HttpPostedFileBase)new
HttpPostedFileBaseCustom(new MemoryStream (bytes), contentTypeFile, fileName);
【讨论】: