Javascript 如何使用Angularjs中的ng文件上载库以二进制格式上载文件?

Javascript 如何使用Angularjs中的ng文件上载库以二进制格式上载文件?,javascript,angularjs,amazon-s3,ng-file-upload,Javascript,Angularjs,Amazon S3,Ng File Upload,我正在使用AngularJs预先签名的URL将一个文件上传到AmazonS3 Bucket。Zip文件在打开下载的文件时损坏。当我以二进制格式从邮递员上传文件时,它正如期工作 我正在使用angularjs中的ng文件上载库。对于每个下载的文件,包含在开头追加的web工具包表单边界,如下所示: 如果我们编辑并删除web kit表单边界,并尝试打开同一个文件,那么它的打开会非常完美。我在一周前遇到了同样的问题,我提出的唯一解决方案是编写自己的代码,通过http请求发送文件。请随意使用以下示例:

我正在使用AngularJs预先签名的URL将一个文件上传到AmazonS3 Bucket。Zip文件在打开下载的文件时损坏。当我以二进制格式从邮递员上传文件时,它正如期工作

我正在使用angularjs中的ng文件上载库。对于每个下载的文件,包含在开头追加的web工具包表单边界,如下所示:


如果我们编辑并删除web kit表单边界,并尝试打开同一个文件,那么它的打开会非常完美。

我在一周前遇到了同样的问题,我提出的唯一解决方案是编写自己的代码,通过http请求发送文件。请随意使用以下示例:

函数azureChangeFn(){
var inputElement=document.getElementById(“fileSelect”);
var newFile=inputElement.files[0];
变量url=”https://YOUR_STORAGE_NAME.blob.core.windows.net/CONTAINER_NAME/“+newFile.name+”从\u AZURE\u站点生成的\u SharedAccessSignature\u”;
var xhr=new XMLHttpRequest();
xhr.addEventListener(“进度”,updateProgress);
xhr.onreadystatechange=函数(){
if(xhr.readyState==XMLHttpRequest.DONE){
警报(“发送到azure存储服务!”);
}
}
xhr.open('PUT',url,true);
setRequestHeader(“内容类型”、“多部分/表单数据”);
xhr.setRequestHeader(“lng”、“en”);
setRequestHeader(“x-ms-blob-type”、“BlockBlob”);
setRequestHeader(“x-ms-blob-content-type”,newFile.type);
发送(newFile);
}
函数更新进程(oEvent){
if(oEvent.Length可计算){
var percentComplete=oEvent.loaded/oEvent.total;
控制台日志(完成百分比);
}否则{
警报(“失败”);
}
}

没有库的示例:

选择文件:
能否提供用于下载文件的代码?