Saya memiliki beberapa katalog PDF ukuran besar di situs web saya, dan saya perlu menautkan ini sebagai unduhan. Ketika saya mencari di Google, saya menemukan hal seperti itu di bawah ini. Seharusnya membuka munculan " Simpan Sebagai ... " di tautan klik ...
<head>
<meta name="content-disposition" content="inline; filename=filename.pdf">
...
Tapi itu tidak berfungsi: / Ketika saya menautkan ke file seperti di bawah ini, itu hanya menautkan ke file dan sedang mencoba untuk membuka file.
<a href="filename.pdf" title="Filie Name">File name</a>
UPDATE (sesuai dengan jawaban di bawah):
Seperti yang saya lihat tidak ada solusi lintas-browser 100% andal untuk ini. Mungkin cara terbaik adalah menggunakan salah satu layanan web yang tercantum di bawah ini, dan memberikan tautan unduh ...
Jawaban:
Dari jawaban untuk Memaksa browser untuk menyimpan file setelah mengeklik tautan :
sumber
download
atributnya terbatas pada Chrome, Firefox dan Opera. Bahkan versi terbaru dari IE dan Safari tidak mendukungnya. Untuk dukungan di masa mendatang: periksa caniuse.com/#feat=download !Ini berfungsi untuk saya di Firefox dan Chrome.
sumber
target="_blank"
mungkin membuatnya sedikit lebih dapat digunakan untuk browser yang tidak mendukung, (PDF kemudian dibuka di jendela / tab baru, daripada menimpa halaman saat ini).target="_blank"
itu diperlukan karenadownload
hanya gagal memicu unduhan dengan benar (Chrome)download
atribut, itu akan digunakan sebagai nama file. Saya menggunakannya dalam skrip pengguna sepanjang waktu.Meta tag bukan cara yang andal untuk mencapai hasil ini. Umumnya Anda bahkan tidak boleh melakukan ini - itu harus diserahkan kepada pengguna / agen pengguna untuk memutuskan apa yang harus dilakukan dengan konten yang Anda berikan. Pengguna selalu dapat memaksa browser mereka untuk mengunduh file jika mereka mau.
Jika Anda masih ingin memaksa browser untuk mengunduh file, modifikasi header HTTP secara langsung. Berikut ini contoh kode PHP:
Perhatikan bahwa ini hanyalah perpanjangan dari protokol HTTP; beberapa browser mungkin mengabaikannya.
sumber
ob_end_flush()
juga tidak membantu.Saya memiliki masalah yang sama dan menemukan solusi yang sejauh ini berhasil. Anda memasukkan kode berikut dalam
.htaccess
file Anda :Itu datang dari Paksa File untuk Diunduh bukannya Muncul di Browser .
sumber
<FilesMatch "\.(pdf|xlsx?|docx?)$">
Saya menemukan solusi yang sangat sederhana untuk Firefox (hanya bekerja dengan kerabat daripada href langsung): tambahkan
type="application/octet-stream"
:sumber
Coba tambahkan baris ini ke file .htaccess Anda.
Saya harap ini akan berfungsi karena ini adalah browser yang independen.
sumber
Umumnya itu terjadi, karena beberapa pengaturan browser atau plug-in langsung membuka PDF di jendela yang sama seperti halaman web sederhana.
Berikut ini mungkin membantu Anda. Saya sudah melakukannya di PHP beberapa tahun yang lalu. Tetapi saat ini saya tidak bekerja pada platform itu.
Simpan yang di atas sebagai download.php .
Simpan potongan kecil ini sebagai file PHP di suatu tempat di server Anda dan Anda dapat menggunakannya untuk membuat unduhan file di browser, daripada ditampilkan secara langsung. Jika Anda ingin menyajikan file selain PDF, hapus atau edit baris 5.
Anda dapat menggunakannya seperti ini:
Tambahkan tautan berikut ke file HTML Anda.
Referensi dari: Blog ini
sumber
download.php?file=database_password_file.php
sebagai contoh.Masukkan saja kode di bawah ini ke
.htaccess
file Anda :Atau Anda juga bisa melakukan trik dengan JavaScript
sumber
Saya baru saja menggunakan ini, tetapi saya tidak tahu apakah itu berfungsi di semua browser.
Ini berfungsi di Firefox:
sumber
Cara yang sangat sederhana untuk mencapai hal ini, tanpa menggunakan situs unduhan eksternal atau memodifikasi tajuk dll adalah dengan hanya membuat file ZIP dengan PDF di dalamnya dan menautkan langsung ke file ZIP. Ini akan SELALU memicu dialog Simpan / Buka, dan masih mudah bagi orang untuk mengklik dua kali jendela PDF yang terkait dengan program .zip diluncurkan.
BTW pertanyaan yang bagus, saya mencari jawaban juga, karena sebagian besar plugin PDF yang disematkan oleh browser membutuhkan waktu lama untuk menampilkan apa pun (dan akan sering menggantung browser saat PDF sedang memuat).
sumber
Solusi sisi server lebih kompatibel, hingga atribut "unduhan" diimplementasikan di semua browser.
Salah satu contoh Python bisa menjadi penangan permintaan HTTP khusus untuk filestore. Tautan yang mengarah ke filestore dihasilkan seperti ini:
Ini kodenya:
sumber
Cara yang sangat mudah untuk melakukan ini, jika Anda harus memaksa unduhan untuk satu tautan pada halaman Anda, adalah dengan menggunakan atribut unduhan HTML5 di href-link.
Lihat: http://davidwalsh.name/download-attribute
dengan ini Anda dapat mengganti nama file yang akan diunduh pengguna dan pada saat yang sama memaksa unduhan.
Ada perdebatan apakah ini praktik yang baik atau tidak, tetapi dalam kasus saya, saya memiliki penampil yang disematkan untuk file PDF dan penampil tidak menawarkan tautan unduhan, jadi saya harus menyediakannya secara terpisah. Di sini saya ingin memastikan pengguna tidak membuka PDF di browser web, yang akan membingungkan.
Ini tidak perlu membuka save as-dialog, tetapi akan mengunduh tautan langsung ke tujuan unduhan yang telah ditetapkan. Dan tentu saja jika Anda melakukan situs untuk orang lain, dan memerlukan mereka untuk menulis secara manual atribut ke tautan mereka mungkin merupakan ide yang buruk, tetapi jika ada cara untuk memasukkan atribut ke tautan, ini bisa menjadi solusi yang ringan.
sumber
Ini adalah posting lama tapi di sini adalah solusi saya dalam JavaScript apa yang menggunakan perpustakaan jQuery.
Anda hanya perlu menggunakan kelas
force-download
di dalam<a>
tag Anda dan akan memaksa unduhan secara otomatis. Anda juga dapat menambahkannya ke indukdiv
dan akan mengambil semua tautan di dalamnya.Contoh:
Ini bagus untuk WordPress dan sistem lain atau situs web khusus.
sumber
Setelah nama file dalam kode HTML saya tambahkan
?forcedownload=1
Ini adalah cara paling sederhana bagi saya untuk memicu kotak dialog untuk menyimpan atau mengunduh.
sumber
Jika Anda memiliki plugin di dalam browser yang tahu cara membuka file PDF, itu akan terbuka secara langsung. Seperti dalam hal gambar dan konten HTML.
Jadi pendekatan alternatifnya bukan mengirim tipe MIME Anda dalam respons. Dengan cara ini browser tidak akan pernah tahu plugin mana yang harus membukanya. Maka itu akan memberi Anda kotak dialog Simpan / Buka .
sumber
Saya baru saja mengalami masalah yang sangat mirip dengan masalah tambahan yang saya butuhkan untuk membuat tautan unduhan ke file di dalam file ZIP.
Saya pertama kali mencoba membuat file sementara, kemudian memberikan tautan ke file sementara, tetapi saya menemukan bahwa beberapa browser hanya akan menampilkan konten (file CSV Excel) daripada menawarkan untuk mengunduh. Akhirnya saya menemukan solusinya dengan menggunakan servlet. Ini berfungsi baik pada Tomcat dan GlassFish, dan saya mencobanya di Internet Explorer 10 dan Chrome.
Servlet mengambil sebagai input nama path lengkap ke file ZIP, dan nama file di dalam zip yang harus diunduh.
Di dalam file JSP saya, saya punya tabel yang menampilkan semua file di dalam zip, dengan tautan yang mengatakan:
onclick='download?zip=<%=zip%>&csv=<%=csv%>'
Kode servlet ada di download.java:
Untuk mengkompilasi pada Tomcat Anda memerlukan classpath untuk memasukkan tomcat \ lib \ servlet-api.jar atau di GlassFish: glassfish \ lib \ j2ee.jar
Tetapi salah satu akan bekerja pada keduanya. Anda juga perlu mengatur servlet Anda
web.xml
.sumber
Tambahkan header respons Content-Disposition: attachment; diikuti oleh nama file. Hapus Meta Content-Disposition; Inline; yang akan membuka dokumen di jendela yang sama
Di java sudah diatur sebagai
sumber
Dengan file PDF besar, browser hang. Di Mozilla, menu Alat → Opsi → Aplikasi , lalu di sebelah jenis konten dokumen Adobe Acrobat. Di menu tarik-turun Tindakan, pilih Selalu tanya .
Ini tidak berhasil untuk saya, jadi yang berhasil adalah:
Alat Menu * → Pengaya → Adobe Acrobat ( Pengaya Adobe PDF untuk Firefox) → DISABLE. Sekarang saya dapat mengunduh e-book!
sumber