публикувам тук, защото не получих отговор във форумите на dropbox. публикация във форума на dropbox
Преди няколко месеца внедрих инструмента за избор на dropbox и всичко работи добре. Тогава преди около седмица се натъкнах на проблем, при който .pdf файловете се отварят, но съдържат празни страници, а .docx файловете изобщо не се отварят (.rtf и .txt файловете се отварят добре)
Както и да е, започнах да ровя и се оказа, че xhr.responseText, който се връща, е кратък с няколко байта (приблизително 4% кратък в pdf файлове)
Разгледах байтовете и началото и краят на файла са правилни (различните версии имат същия проблем):
%PDF-1.5
...
%%EOF
Ето съответния код:
var options = {
success: function(files)
{
var xhr = new XMLHttpRequest();
xhr.open("GET", files[0].link, false);
xhr.responseType = 'arrayBuffer';
xhr.onreadystatechange = function(oEvent)
{
if (xhr.readyState === 4 && xhr.status === 200)
{
var buffer = xhr.responseText;
console.log('File size: ' + files[0].bytes +
' | Buffer size: ' + buffer.length +
' | Header size: ' + xhr.getResponseHeader('Content-Length'));
}
}
xhr.setRequestHeader("User-Agent", navigator.userAgent);
try
{
xhr.send(null);
}
catch (err)
{
alert(err);
}
},
linkType: "direct", // or "preview"
multiselect: false, // or true
};
Dropbox.choose(options);
В конзолата стойностите "File size" и "Header size" са еднакви, но "Buffer size", responseText, той е по-малък...
Защо dropbox връща цялото съдържание на файла?