Dropbox APIを使用して、Ajaxを使用してWebインターフェイス経由で特定のDropboxフォルダにファイルを送信しようとしています。Ajax経由でDropboxにアップロードするときに破損したファイル
function UploadFile(token, callback) {
var fileName = $('input[type=file]')[0].files[0].name,
fileData = new FormData($('#file-upload')[0]),
dbxHeaderParams = {
'path': '/' + fileName,
'mode': { '.tag': 'add' },
'autorename': true
};
$.ajax({
url: 'https://content.dropboxapi.com/2/files/upload',
type: 'POST',
headers: {
'Authorization': 'Bearer ' + token,
'Content-Type': 'application/octet-stream',
'Dropbox-API-Arg': JSON.stringify(dbxHeaderParams)
},
data: fileData,
processData: false,
contentType: false,
success: function(result) {
console.log('NICE BRO');
callback();
},
error: function(error) {
console.error(error);
callback();
}
});
}
このコードは動作します:ファイルは、私のDropboxフォルダにアップロードされていると私はそれらを開くことができ
は、ここに私のコードです。彼らは正しい名前と(ほぼ)正しいサイズを持っています。しかし、問題は、プロセス中に行が追加されるため、すべてが破損していることです。ここで
は一例です:私はこれを含む.txt
ファイルをアップロードする場合:
harder better faster stronger
は一度私のDropboxにアップロード、それは次のようになります:私はこれがある
-----------------------------2308927457834
Content-Disposition: form-data; name="file"; filename="test.txt"
Content-Type: text/plain
harder better faster stronger
-----------------------------2308927457834--
仮定しますなぜ画像のようなファイルを開くことができないのですか?私はいくつかの解決策を試しましたが、どれも解決できません。私は間違って何をしていますか?ありがとう!
、感謝を!しかし、Webで見つかったほとんどすべての例は、この(非常に)よくある質問のような 'FormData'オブジェクトを使っていたので、ここで' File'タイプが必要な理由は分かりません:http://stackoverflow.com/questions/166221/how-can-i-upload-files-asynchronously?rq = 1 – Flobesst