私は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オブジェクトです:
そして、これは私がquickblox jsの例では得るものです:
すべて他のものは、このFileオブジェクトを除いて全く同じように見えます。 私はこれが私が抱えている問題であると確信しています。この分野では非常に初心者であるため、IonicのFileオブジェクトからFileオブジェクトのようなものにキャストする方法を見つけることができませんでした。 jsの例です。 あなたの時間と助けを前もっておかげさまで、ありがとうございます。
EDIT:
は、私は私のイオンアプリからのリクエスト/レスポンスのログを添付:
012あなたがチャットを接続するために使用されるコードを投稿してくださいでした
こんにちは、Iomeアプリを使用しているときに、Chromeコンソール(ネットワークタブ)からのリクエスト/応答ログを表示してください。私たちはバックエンドに行くものを確認する必要があります –
こんにちはIgor、そこにログを追加しました。 – GJG
URLエンコードされたBLOBを送信するのは良い考えではありません... – n00dl3