FileSaver.js kullanarak bir dosyayı indirmeye çalışıyorum, ancak indirme düğmesine bastığımda bozuk bir dosya alıyorum.AngularJs uygulamasında bozuk İndir
Uygulama bir PHP REST hizmeti tarafından desteklenir ve komut satırından cURL kullanılarak REST'in düzgün çalıştığını onaylar. Bu sadece dosya bozarsa
// Let str be the data received from $http promise
// This code is run in a "then" callback
var arr= new Uint8Array(str.length);
for(var i=0; i<str.length; i++) {
arr[b]=str.charCodeAt(i);
};
var blob = new Blob([arr], {type: 'application/octet-stream'});
saveAs(blob, "AFileName");
:
Burada indirilmesi için kullanılacak sözde kodunun son sürümüdür.
Ayrıca, Uint8Array
'u uygulamadan ve str
'u doğrudan Blob
'a göndermeyi denedim. Tahmin ettiğin gibi, başarısız oldu.
Sunucu ve istemci kendim yazıyorum, bu yüzden onlarda bir şeyleri değiştirebilirim. Ancak, istemcinin istemci tarafından karşıdan karşıya yüklenmesini istemiyorum ve REST'in kimlik doğrulaması gerektirdiğinden ve bu belirtecin yalnızca Angular uygulamasında yaşadığı için, kullanıcıları indirmek için dosya URL'sine yönlendiremiyorum. Doğrulama olmadan dosya indirme işlemlerini gerçekleştirmek için sunucuyu değiştirmek iyi bir seçim değildir.
REST, erişildiği zaman dosya içeriğini normal bir HTTP dosyası indirme (yukarıda belirtildiği gibi cURL ile sınanmış) olarak veren /files/:id
gibi URL'lere sahiptir. $http
sorun olabilir mi? Bir şekilde, alınan veriler üzerinde bir çeşit kodlama veya bazı varsayımlar zorlamak. Zaten Angular'da fazla tecrübem yok.
@ArtjomB Kurallara aykırı "Teşekkürler" deyin mi? – vfsoraki
Şunu söyleyebilirsin: [Merhaba, 'teşekkürler', 'sloganlar ve selamlar yazılardan kaldırılmalı mı?] (Http://meta.stackexchange.com/q/2950/266187), ama gitme ve Bu şeyleri eski gönderiden kaldır. Bu onlara istenmeyen ilgi verebilir. Ayrıca, bunu yaptığınızda, yazıdaki her şeyi düzeltmelisiniz. Bu düzenlemeyi yapmamın nedeni, başka bir kullanıcının soruyu PHP etiketine önerdiğinden, bu parçayı test ettiğini ve işe yaradığını söylediğinden beri yanlış görünüyordu. Daha sonra düzenlemeleri kendimin bir düzenlemesiyle reddettim. –