我正在尝试将文件从浏览器上传到 asp.NET 服务。我正在使用FileReader.readAsDataURL()
并获取文件作为数据 URL。
我正在使用此 JavaScript 代码event.target.result.match(/,(.*)$/)[1]
仅获取 base64 格式的文件。这就是我发送给服务的内容。
使用下面的代码,我将文件存储在隔离存储中
IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(
IsolatedStorageScope.User | IsolatedStorageScope.Assembly, null, null);
byte[] byteArray = Convert.FromBase64String(data);
IsolatedStorageFileStream stream = new IsolatedStorageFileStream("myfile",
FileMode.Create, isoStore);
StreamWriter writer = new StreamWriter(stream);
writer.Write(byteArray);
writer.Close();
不幸的是,我保存的文件已损坏。难道我做错了什么?有没有更好的方法来做到这一点?
编辑:我正在尝试实现 Gmail 样式文件上传。我尝试过使用表格,但它使事情变得非常复杂。
我的 ajax 调用如下所示:
var query = {
"data": fileData,
"fileName": fileName
};
$.ajax({
type: "POST",
url: "Page.aspx/UploadFile",
data: JSON.stringify(query),
contentType: "application/json; charset=utf-8",
dataType: "JSON"});
它可能与 UTF-8 编码有关吗?