我想知道如何最好地处理文件上传和添加到要使用没有MVC组件的ASP.NET Web API 2上载的文件的附加信息。我有谷歌网,我可以告诉你我比我预期的更困惑。
附加信息将存储在db中,文件存储在磁盘上。 到目前为止,我正在构建的Web API应用程序不支持multipart / form-data。它仅支持默认媒体类型。我知道我需要创建一个媒体格式化程序。
请帮助。
答案 0 :(得分:1)
我写过Javascript split File并上传到WEB API。我想你可以参考我的后端代码
在前端,您需要使用以下代码上传文件
var xhr = new self.XMLHttpRequest();
xhr.open('POST', url, false);
xhr.setRequestHeader('Content-Type', 'application/octet-stream');
xhr.send(chunk);
在后端使用Request.InputStream.Read来捕获你的文件字节
[HttpPost]
[ValidateInput(false)]
public string fileUpload(string filename)
{
byte[] file = new byte[Request.InputStream.Length];
Request.InputStream.Read(file, 0, Convert.ToInt32(Request.InputStream.Length));
BinaryWriter binWriter = new BinaryWriter(new MemoryStream());
binWriter.Write(file);
StreamReader reader = new StreamReader(binWriter.BaseStream);
reader.BaseStream.Position = 0;
//This example is recevied text file
while ((line = reader.ReadLine()) != null)
{
};
}
答案 1 :(得分:0)
您可以将文件数据序列化为BASE64,并将其作为字符串发送,以防因出于某种原因而不允许使用multipart / from-data。