【问题标题】:Problems with File plugin in Ionic2Ionic2中文件插件的问题
【发布时间】:2017-08-11 20:33:00
【问题描述】:

我正在将 Quickblox 集成到我的 Ionic2 应用程序中,现在除了上传文件之外,我可以做所有的事情。 在 Quickblox 中,您必须使用他们制作的函数上传文件,根据 js 文档,该函数如下所示:

var inputFile = $("input[type=file]")[0].files[0];

var params = {name: inputFile.name, 
     file: inputFile, 
     type: inputFile.type, 
     size: inputFile.size, 
     public: false};

QB.content.createAndUpload(params, function(err, response){
  if (err) {
    console.log(err);
  } else {
    console.log(response);
    var uploadedFile = response;
    var uploadedFileId = response.id;
  }
});

所以我把上面的代码翻译成打字稿,我有这样的东西:

uploadFile(filename) {
    File.resolveDirectoryUrl(cordova.file.dataDirectory).then(
        (dirEntry) => {
            File.getFile(dirEntry, filename, { create: false }).then(
                (fileEntry) => {
                    console.log(fileEntry);
                    fileEntry.file((file) => {
                        console.log(file);
                        var params = {
                            name: file['name'],
                            file: file,
                            type: file['type'],
                            size: file['size'],
                            'public': false
                        };
                        quickblox.content.createAndUpload(params,
                            (err, response) => {
                                if (err) {
                                    console.log(err);
                                } else {
                                    console.log(response);
                                    var uploadedFileId = response.id;
                                    var msg = {
                                        type: 'groupchat',
                                        body: "[attachment]",
                                        extension: {
                                            save_to_history: 1,
                                        }
                                    };
                                    msg["extension"]["attachments"] = [{ id: uploadedFileId, type: 'photo' }];
                                    quickblox.chat.send(this.xmpp_room_jid, msg);
                                }
                            });
                    })
                }).catch(
                (err) => {
                    console.log(err);
                }
                );
        }
    );
}

这项工作是在“我从 quickblox 服务器得到正常响应”的条件下工作的,但是当我去 quickblox 的管理控制台检查上传的内容时,我发现我上传的图像有 0 个字节。 因此,在检查了一段时间的代码后,我将我所有的函数调用与 quickblox 的示例应用程序并排比较,我能发现的唯一区别在于 File 对象。

这是我在 Ionic 2 应用程序中获得的文件对象:

这是我在 quickblox js 示例中得到的:

除了这个 File 对象之外,所有其他的东西看起来都一样。 我几乎可以肯定这是我遇到的问题,并且因为我在这个领域非常新手,所以我找不到从 Ionic 中的 File 对象转换为类似 js 中的 File 对象的方法例子。 预先感谢您的时间和帮助。

编辑:

我附上了 Ionic 应用程序的请求/响应日志:

【问题讨论】:

  • 您好,您能否在使用 Ionic 应用程序时列出来自 Chrome 控制台(网络选项卡)的请求/响应日志。我们需要检查后端的内容
  • 嗨,伊戈尔,我在那里添加了日志。
  • 将 blob 作为 url 编码发送不是一个好主意...
  • 谢谢,看起来不错。我们还需要检查对“/complete.json”的请求。你也可以展示一下吗?
  • 是的,给你。两个响应都是空的。

标签: javascript typescript ionic2 cordova-plugins quickblox


【解决方案1】:

能否请您发布用于连接聊天、创建会话、打开视频通话的代码? quickblox 上的文档非常糟糕,我一直无法连接聊天。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-24
    • 2017-01-24
    • 2017-09-27
    • 1970-01-01
    • 2017-08-08
    • 2017-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多