我正在使用HttpPostedFileBase使用ASP.NET MVC上传文件。我需要将其发布到API调用,我收到错误
" StatusCode:403,Reason Phrase:' Forbidden',Version:1.1,Content: System.Net.Http.StreamContent"
这是因为我将文件内容传递为" application / octet-stream",其中API调用要求内容类型为" application / vnd.qlik.sense.app" 。 互联网上的很多帖子都说HttpPostedFileBase是只读的,我们无法更改内容类型。任何人都可以告诉我们如何更改HttpPostedFileBase的内容类型。这可能吗?
这是我的代码。
[HttpPost]
public ActionResult UploadFile(HttpPostedFile file)
{
if (file != null && file.ContentLength > 0)
{
var fileName = Path.GetFileNameWithoutExtension(file.FileName);
APIcall.Upload(fileName);
}
return RedirectToAction("Index");
}
答案 0 :(得分:0)
在此处找到how set HttpPostedFileBase ContentType value in runtime
public class MemoryPostedFile : HttpPostedFileBase
{
private readonly byte[] fileBytes;
public MemoryPostedFile(byte[] fileBytes, string fileName = null,string ContentType=null)
{
this.fileBytes = fileBytes;
this.FileName = fileName;
this.ContentType = ContentType;
this.InputStream = new MemoryStream(fileBytes);
}
public override int ContentLength => fileBytes.Length;
public override string FileName { get; }
public override string ContentType { get; }
public override Stream InputStream { get; }
}