Javascript-发送编码二进制(zip)文件数据并在c#中对其进行解码
Javascript - sending encoding binary (zip) file data and decoding it in c#
我有zip文件,我想将其编码并发送为字符串,解码并保存在服务器端:
这是客户端中编码的代码(JS(:
var fileAsText = ''
var reader = new FileReader()
reader.onload = function (event) {
fileAsText = encodeURIComponent(event.target.result)
}
reader.readAsText(zipFile)
zipFile
是输入File对象(由用户上传(。
我在JSON
中作为Post
发送的fileAsText
字符串(这就是我使用encodeURIComponent
的原因(
一切都很好,但在服务器端,我想把这个字符串解码回二进制文件(zip文件(并提取它。我想让与用户在客户端上传的文件完全相同。
这是我在c#:中的代码
using (var bw = new BinaryWriter(File.Open("fileTest.zip", FileMode.Create)))
{
bw.Write(HttpUtility.UrlDecode(fileAsText));
}
问题:我没有得到相同的文件(二进制数据不同(我认为解码器HttpUtility.UrlDecode
不适合encodeURIComponent
知道如何获得用户上传的相同文件二进制数据吗?
二进制字符串在javascript中不能很好地工作。最好将其作为多部分表单数据发布。
但是,如果你真的需要将其作为json发布,因为服务器有一些限制,那么最好是将其作为base64 发送
快速解决方法是将readAsText
更改为readAsDataURL
然后在服务器端使用Convert.FromBase64String
将其转换回二进制
byte[] data = Convert.FromBase64String(encodedString);
相关文章:
- Base64解码不适用于二进制数据
- 如何使用javascript将数据:image/png:base64.解码为真实图像
- 将Json数据解码为PHP变量
- 使用Jquery从PHP页面解码JSON数据
- 使用 pako 解码压缩的数据流
- 如何将 base64 音频数据解码为 WAV 格式
- 为解码音频数据(WebAudio API)定义“有效的mp3块”
- 解码 URL 后如何使用数据
- 从数据 URI 解码二维码
- D3JS 在编码解码数据后工作
- 使用php和javascript进行编码和解码以及数据属性验证
- JavaScript Web音频:无法正确解码音频数据
- 使用Web Audio API解码带有外部二进制数据的AudioData
- JavaScript Base 64解码二进制数据不;t工作
- decodeURIComponent不解码来自数据属性的字符串
- 为JavaScript客户端编码/解码大量数据的最佳方式
- 使用数据绑定时如何解码字符串
- Android,数据url解码时base-64错误
- 如何编码和发送浮点数据到GLSL从Javascript/THREE.js和解码结果
- Javascript-发送编码二进制(zip)文件数据并在c#中对其进行解码