我正在尝试做一件非常简单的事情(至少我是这么认为):我想上传一些字节数组(大部分时间从文件中读取)和一些描述(只是一个字符串)到我的ASP.NET网站,我也使用TypeScript和AngularJS,但我不认为它们在这里很重要。所以我的JS代码如下(简化):
var fileReader = new FileReader();
fileReader.onloadend = eventData => {
newItem.Title = "test";
newItem.FileData = new Int8Array(fileReader.result); //???
//$http posting newItem to service
};
fileReader.readAsArrayBuffer(fileElement.files[0]); //read from <input type='file'>
我的Web API方法有这个签名:
public void Create(Item newItem)
使用以下Item
类:
public class Item {
public string Title { get; set; } //this is mapped correctly
public byte[] FileData { get; set; } //???
}
但是,FileData
始终为null
而Title
有效。有可能做我想要的吗?如果是这样,我应该如何更改标有???
(或任何其他)的代码?
答案 0 :(得分:0)
无法将Int8Array
自动映射到byte[]
。您必须处理某种编码/解码,这是最好的速度和流量管理方法。但是如果你真的想要得到一个阵列,那么只需要很少的努力即可将一个阵列映射到另一个阵列。对于少量数据,可以使用服务器端的int[]
和JS中的常规数组(TS中为number[]
)