2017-03-20 1 views
2

私はIonic2アプリケーションにQuickbloxを統合しています。今はファイルをアップロードする以外のことはすべて実行できました。Ionic2のFile Pluginに関する問題

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); 
       } 
       ); 
     } 
    ); 
} 
をあなたはJSドキュメントによると、このようになっていることを彼らによって作られた機能を使用してファイルをアップロードする必要がありQuickbloxで

これは「quickbloxサーバーからok応答を受け取りました」という言葉で動作しますが、quickbloxの管理コンソールからアップロードされたコンテンツを確認すると、アップロードした画像に0バイトが含まれています。 コードをしばらくチェックした後、私はquickbloxのサンプルアプリケーションですべての関数呼び出しを並べて比較しましたが、Fileオブジェクトには唯一の違いがありました。

これは私が私のイオン2アプリで取得するFileオブジェクトです:

Ionic 2 code

そして、これは私がquickblox jsの例では得るものです:

Quickblox js code

すべて他のものは、このFileオブジェクトを除いて全く同じように見えます。 私はこれが私が抱えている問題であると確信しています。この分野では非常に初心者であるため、IonicのFileオブジェクトからFileオブジェクトのようなものにキャストする方法を見つけることができませんでした。 jsの例です。 あなたの時間と助けを前もっておかげさまで、ありがとうございます。

EDIT:

は、私は私のイオンアプリからのリクエスト/レスポンスのログを添付:

enter image description here

enter image description here

enter image description here

enter image description here

012あなたがチャットを接続するために使用されるコードを投稿してくださいでした

enter image description here

enter image description here

+0

こんにちは、Iomeアプリを使用しているときに、Chromeコンソール(ネットワークタブ)からのリクエスト/応答ログを表示してください。私たちはバックエンドに行くものを確認する必要があります –

+0

こんにちはIgor、そこにログを追加しました。 – GJG

+0

URLエンコードされたBLOBを送信するのは良い考えではありません... – n00dl3

答えて

0

、ビデオ通話を開いて、セッションを作成しますか? quickbloxのドキュメントは非常に悪く、私はチャットに接続することに固執しています。