Javascript 保存从xmpp Strophe si filetransfer接收的文件

Javascript 保存从xmpp Strophe si filetransfer接收的文件,javascript,jquery,xmpp,strophe,Javascript,Jquery,Xmpp,Strophe,我正在使用strophe.si-filetransfer.js插件在我的web应用程序中实现文件传输。我能够在iq节内接收文件详细信息。我的问题是,如何从iq节中提取文件数据并下载 我提到的链接解决了以下问题: 感谢在接收方,您需要在文件处理程序功能上收集文件信息,然后在ibbHandler上获取所有数据通道(例如使用数组),最后您必须连接所有文件部分(数据通道)并恢复原始文件。 在下面的示例中(根据您建议的链接改编),我假设文件是使用FileReader API和方法进行加密的,因此数据是ba

我正在使用strophe.si-filetransfer.js插件在我的web应用程序中实现文件传输。我能够在iq节内接收文件详细信息。我的问题是,如何从iq节中提取文件数据并下载

我提到的链接解决了以下问题:


感谢

在接收方,您需要在文件处理程序功能上收集文件信息,然后在ibbHandler上获取所有数据通道(例如使用数组),最后您必须连接所有文件部分(数据通道)并恢复原始文件。 在下面的示例中(根据您建议的链接改编),我假设文件是使用FileReader API和方法进行加密的,因此数据是base64编码的

var aFileParts, filename, mimeFile;

var fileHandler = function(from, sid, filename, size, mime) {
    // received a stream initiation
    filename = filename;
    mimeFile = mime;
};
connection.si_filetransfer.addFileHandler(fileHandler);

var ibbHandler = function (type, from, sid, data, seq) {
    switch(type) {
    case "open":
      // new file, only metadata
      aFileParts = [];
      break;
    case "data":
      // data
      aFileParts.push(data);
      break;
    case "close":
      // and we're done
      var data = "data:"+mimeFile+";base64,";
      for (var i = 0; i < aFileParts.length; i++) { 
         data += aFileParts[i].split(",")[1];
      }
      var span = document.createElement('span');
      span.innerHTML = '<a href="'+data+'" download="'+filename+'">'+filename+</a>;
    default:
      throw new Error("shouldn't be here.")
  }
};
var-aFileParts,文件名,mimeFile;
var fileHandler=函数(从、sid、文件名、大小、mime){
//接收到流启动
filename=文件名;
mimeFile=mime;
};
connection.si_filetransfer.addFileHandler(fileHandler);
var ibbHandler=函数(类型、发件人、sid、数据、序号){
开关(类型){
案例“未结”:
//新文件,仅元数据
aFileParts=[];
打破
案例“数据”:
//资料
aFileParts.push(数据);
打破
案例“结束”:
//我们完成了
var data=“数据:”+mimeFile+“base64”;
对于(var i=0;i
 
  • 基于Jquery的图像水印
  • Jquery 行上的柔性网格单击
  • Jquery youtube api事件的弹出窗口
  • Jquery insertBefore问题
  • jQuery插件不适用于动态添加的元素
  • Jquery 计算潜水舱的总高度
  • Jquery 如何通过另一个类的onclick事件控制整个类?
  • Jquery 按钮计数器更改样式
  • 使用jQuery进行类似Facebook的计数
  • chrome中的Jquery.animate()错误
  • Jquery 在拉斐尔中更改路径的终点
  • 如何通过jqueryappend方法应用tinymce编辑器
  • 循环jquery中的随机数
  • Jquery 如何在微型旋转木马中添加鼠标悬停
  • Jquery 使用从表单中的URL输入收集的JSON对象填充Rails 4表单
  • Jquery 为什么我的复选框';当我隐藏或滑动复选框时,s文本是否继续显示?
  • 点和散列符号在JQuery中是什么意思?