Saya memerlukan browser untuk mendownload file gambar seperti saat mengklik lembar Excel.
Apakah ada cara untuk melakukan ini hanya dengan menggunakan pemrograman sisi klien?
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript" src="Scripts/jquery-1.10.2.js">
$(document).ready(function () {
$("*").click(function () {
$("p").hide();
});
});
</script>
</head>
<script type="text/javascript">
document.onclick = function (e) {
e = e || window.event;
var element = e.target || e.srcElement;
if (element.innerHTML == "Image") {
//someFunction(element.href);
var name = element.nameProp;
var address = element.href;
saveImageAs1(element.nameProp, element.href);
return false; // Prevent default action and stop event propagation
}
else
return true;
};
function saveImageAs1(name, adress) {
if (confirm('you wanna save this image?')) {
window.win = open(adress);
//response.redirect("~/testpage.html");
setTimeout('win.document.execCommand("SaveAs")', 100);
setTimeout('win.close()', 500);
}
}
</script>
<body>
<form id="form1" runat="server">
<div>
<p>
<a href="http://localhost:55298/SaveImage/demo/Sample2.xlsx" target="_blank">Excel</a><br />
<a href="http://localhost:55298/SaveImage/demo/abc.jpg" id="abc">Image</a>
</p>
</div>
</form>
</body>
</html>
Bagaimana cara kerjanya jika mengunduh lembar Excel (apa yang dilakukan browser)?
javascript
jquery
html
Amit
sumber
sumber
download
atribut.Jawaban:
Menggunakan HTML5 Anda dapat menambahkan atribut 'download' ke link Anda.
<a href="https://stackoverflow.com/path/to/image.png" download>
Browser yang sesuai kemudian akan meminta untuk mengunduh gambar dengan nama file yang sama (dalam contoh ini image.png).
Jika Anda menentukan nilai untuk atribut ini, maka itu akan menjadi nama file baru:
<a href="https://stackoverflow.com/path/to/image.png" download="AwesomeImage.png">
UPDATE: Pada musim semi 2018 ini tidak mungkin lagi untuk cross-asal
href
s . Jadi jika Anda ingin membuat<a href="https://i.imgur.com/IskAzqA.jpg" download>
di domain selain imgur.com itu tidak akan berfungsi sebagaimana mestinya. Pengumuman penghentian dan penghapusan Chromesumber
Saya berhasil mendapatkan ini berfungsi di Chrome dan Firefox juga dengan menambahkan tautan ke dokumen.
sumber
document.body.appendChild(link)
itu tidak akan berfungsi di firefox. Ini juga bagus untuk menghapus elemen yang dibuat dengandocument.body.removeChild(link);
afterlink.click()
setTimeout( function () { link.parentNode.removeChild( link ); },10 );
sumber
Perbarui Musim Semi 2018
Meskipun ini masih didukung, mulai Februari 2018 chrome menonaktifkan fitur ini untuk pengunduhan lintas sumber yang berarti ini hanya akan berfungsi jika file berada di nama domain yang sama.
Saya menemukan solusi untuk mengunduh gambar lintas domain setelah pembaruan baru Chrome yang menonaktifkan unduhan lintas domain. Anda dapat memodifikasinya menjadi fungsi yang sesuai dengan kebutuhan Anda. Anda mungkin bisa mendapatkan gambar jenis mime (jpeg, png, gif, dll) dengan beberapa penelitian lebih lanjut jika perlu. Mungkin ada cara untuk melakukan hal serupa dengan video ini juga. Semoga ini bisa membantu seseorang!
sumber
Pendekatan yang lebih modern menggunakan Promise dan async / await:
kemudian
Temukan dokumentasi di sini: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch
sumber
sumber
Ini adalah solusi umum untuk masalah Anda. Tetapi ada satu bagian yang sangat penting bahwa ekstensi file harus cocok dengan pengkodean Anda. Dan tentu saja, parameter konten dari fungsi downlowadImage harus berupa string berenkode base64 dari gambar Anda.
sumber
Pada tahun 2020 saya menggunakan Blob untuk membuat salinan gambar lokal, yang akan diunduh browser sebagai file. Anda bisa mengujinya di situs ini .
sumber
Coba ini:
sumber
sumber
Anda bisa langsung mendownload file ini menggunakan anchor tag tanpa banyak kode.
Salin cuplikan dan tempel di editor teks Anda dan coba ...!
sumber
Bagaimana dengan menggunakan fungsi .click () dan tag?
(Versi terkompresi)
Sekarang Anda dapat memicunya dengan js. Itu juga tidak terbuka, seperti contoh lain, file gambar dan teks!
(versi js-function)
sumber
Saya menemukan itu
<a href="link/to/My_Image_File.jpeg" download>Download Image File</a>
tidak bekerja untuk saya. Saya tidak yakin kenapa.
Saya telah menemukan bahwa Anda dapat menyertakan
?download=true
parameter di akhir tautan Anda untuk memaksa unduhan. Saya rasa saya memperhatikan teknik ini digunakan oleh Google Drive.Di link Anda, sertakan
?download=true
di bagian akhir href Anda.Anda juga dapat menggunakan teknik ini untuk menyetel nama file pada saat yang bersamaan.
Di link Anda, sertakan
?download=true&filename=My_Image_File.jpeg
di bagian akhir href Anda.sumber
Anda tidak perlu menulis js untuk melakukannya, cukup gunakan:
Dan browser itu sendiri akan mendownload gambar secara otomatis.
Jika karena alasan tertentu tidak berhasil tambahkan atribut download. Dengan atribut ini, Anda dapat menetapkan nama untuk file yang dapat diunduh:
sumber
download
atribut tidak didukung di semua browser.