Saya memiliki beberapa teks di textarea tersembunyi. Ketika sebuah tombol diklik, saya ingin teks tersebut ditawarkan untuk diunduh sebagai .txt
file. Apakah ini mungkin menggunakan AngularJS atau Javascript?
javascript
angularjs
nickponline
sumber
sumber
Jawaban:
Anda dapat melakukan hal seperti ini dengan menggunakan
Blob
.di pengontrol Anda:
untuk mengaktifkan URL:
Harap dicatat bahwa
Sumber: MDN
sumber
$scope.url
tidak berhasil untuk saya. Saya harus menggunakanwindow.location
sebagai gantinya.download
atribut tidak didukung dalam versi IE atau Safari meskipun caniuse.com/#feat=downloadCukup klik tombol untuk mengunduh menggunakan kode berikut.
dalam html
Dalam pengontrol
sumber
$http.get(...)
pastikan untuk mengaturresponseType:'arraybuffer'
seperti yang dijelaskan di sini: stackoverflow.com/questions/21628378/…Coba ini
dan kunjungi situs ini, ini bisa membantu Anda :)
http://docs.angularjs.org/guide/
sumber
download
atribut yang masih belum didukung oleh versi IE atau Safari. Lihat di sini: caniuse.com/#feat=downloadIni dapat dilakukan dalam javascript tanpa perlu membuka jendela browser lain.
Ganti 'url' dengan tautan ke file Anda. Anda dapat menempatkan ini dalam sebuah fungsi dan memanggilnya dengan
ng-click
jika Anda perlu memicu unduhan dari sebuah tombol.sumber
Dalam proyek kami saat ini di tempat kerja kami memiliki iFrame yang tidak terlihat dan saya harus memberi makan url untuk file tersebut ke iFrame untuk mendapatkan kotak dialog unduhan. Pada klik tombol, pengontrol menghasilkan url dinamis dan memicu peristiwa $ scope di mana kebiasaan yang
directive
saya tulis, terdaftar. Direktif akan menambahkan iFrame ke badan jika belum ada dan menyetel atribut url di atasnya.EDIT: Menambahkan perintah
Direktif ini menanggapi peristiwa pengontrol yang disebut
downloadFile
jadi di pengontrol Anda, Anda melakukannya
sumber
Anda dapat menyetel
location.href
ke URI data yang berisi data yang Anda inginkan agar dapat diunduh pengguna. Selain itu, menurut saya tidak ada cara untuk melakukannya hanya dengan JavaScript.sumber
$location.href
diubah menjadi$window.location.href
Hanya ingin menambahkannya jika tidak mengunduh file karena tidak aman: blob: null ... saat Anda mengarahkan kursor ke tombol unduh, Anda harus membersihkannya. Misalnya,
sumber
Jika Anda memiliki akses ke di server, pertimbangkan untuk menyetel header seperti yang dijawab dalam pertanyaan yang lebih umum ini .
Membaca komentar tentang jawaban itu, disarankan untuk menggunakan Jenis Konten yang lebih spesifik daripada aliran oktet.
sumber
Saya memiliki masalah yang sama dan menghabiskan berjam-jam menemukan solusi yang berbeda, dan sekarang saya bergabung dengan semua komentar di posting ini. Saya harap ini, akan membantu, jawaban saya telah diuji dengan benar di Internet Explorer 11, Chrome dan FireFox.
HTML:
PENGARAHAN :
DI CONTROLLER:
DALAM PELAYANAN:
BACKEND (pada SPRING):
sumber
Ini bekerja untuk saya dalam sudut:
sumber
data:text/plain;base64,${btoa(theStringGoesHere)}
Saya tidak ingin Static Url. Saya memiliki AjaxFactory untuk melakukan semua operasi ajax. Saya mendapatkan url dari pabrik dan mengikatnya sebagai berikut.
Terima kasih @AhlemMustapha
sumber