Apa cara membuat tautan html membuka folder

106

Saya perlu mengizinkan pengguna aplikasi membuka folder dengan mengklik link di dalam halaman web. Jalur folder ada di jaringan dan dapat diakses dari mana saja. Saya mungkin yakin tidak ada cara mudah untuk melakukan ini, tetapi mungkin saya salah?

Sebastien Lachance
sumber
4
Saya telah menjawab di bawah ini; ini adalah persyaratan umum aplikasi web perusahaan yang dibuat hampir tidak mungkin karena keamanan yang salah arah (seharusnya dimungkinkan untuk mengaktifkan tautan file di halaman http tepercaya). Saya hanya menguji secara ekstensif pada Windows.
Andrew Duffy

Jawaban:

107

Apakah Anda ingin membuka folder bersama di Windows Explorer? Anda perlu menggunakan file:tautan, tetapi ada peringatan:

  • Internet Explorer akan berfungsi jika tautannya adalah jalur UNC yang dikonversi ( file://server/share/folder/).
  • Firefox akan berfungsi jika tautan dalam bentuknya yang rusak menggunakan lima garis miring ( file://///server/share/folder) dan pengguna telah menonaktifkan batasan keamanan pada file:tautan di halaman yang disajikan melalui HTTP . Untungnya IE juga menerima formulir tautan yang rusak.
  • Opera, Safari, dan Chrome tidak dapat diyakinkan untuk membuka file:tautan di halaman yang disajikan melalui HTTP.
Andrew Duffy
sumber
4
di IE hanya jika jalur UNC dan situs web yang berisi tautan berada di domain yang sama, artinya hanya di intranet.
Stefan Steiger
4
Saya pikir ini tidak lagi benar - versi IE yang lebih baru tampaknya memblokir perilaku ini seperti Chrome / Safari / dll.
ZeekLTK
1
Saya baru saja mencoba ini di IE 11 dan Anda sebenarnya dapat membuka file lokal tanpa mengunduhnya (seperti membuka jalur file yang sudah ada). Ini masih tidak ada di chrome.
Hohohodown
4
Anda bisa mendapatkan ini untuk bekerja di Chrome melalui ekstensi Chrome LocalLinks . Berkat jawaban StackOverflow ini
Zach Johnson
@Andrew Duffy, apakah ada dokumentasi yang mengatakan bahwa Google Chrome memblokir perilaku ini? Saya ingin tahu lebih banyak tentang ini
permainan kata
7

URL file://[servername]/[sharename]harus membuka jendela explorer ke folder bersama di jaringan.

berkafein tinggi
sumber
4

pastikan izin folder Anda disetel sehingga daftar direktori diizinkan, lalu arahkan jangkar Anda ke folder itu menggunakan chmod 701 (yang mungkin berisiko) misalnya

<a href="./downloads/folder_i_want_to_display/" >Go to downloads page</a>

pastikan bahwa Anda tidak memiliki index.html file indeks apa pun di direktori itu

mengunci
sumber
Jawaban ini berhasil. Bagian "daftar direktori diperbolehkan" sangat penting. Jika tidak diizinkan, Anda dapat mengaktifkannya tetapi berbeda untuk setiap aplikasi server.
Travis
3

Menggunakan file: ///// tidak akan berfungsi jika setelan keamanan disetel ke tingkat sedang.

Jika Anda hanya ingin pengguna dapat mengunduh / melihat file * yang terletak di jaringan atau berbagi, Anda dapat menyiapkan Direktori Virtual di IIS. Pada tab Properties pastikan "A share located on another computer" dipilih dan "Connect as ..." adalah akun yang dapat melihat lokasi jaringan.

Link ke direktori virtual dari halaman web Anda (misalnya http: // yoursite / yourvirtualdir / ) dan ini akan membuka tampilan direktori di browser web.

* Anda dapat mengizinkan izin menulis pada direktori virtual untuk mengizinkan pengguna menambahkan file tetapi tidak mencobanya dan menganggap izin jaringan akan menimpa pengaturan ini.

Bickie
sumber
Ini relevan saat ini, karena Chrome dan versi IE yang lebih baru akan memblokir akses ke file lokal: // sumber daya dari halaman web non-file. Selain itu, ini dapat diatur untuk dijalankan di IIS Express, meskipun harus ditambahkan dan dijalankan secara manual.
Schmuli
1

Anda juga dapat menyalin alamat tautan dan menempelkannya di jendela baru untuk menghindari keamanan. Ini berfungsi di chrome dan firefox tetapi Anda mungkin harus menambahkan garis miring di firefox.

Wyrmwood
sumber
1

Agak terlambat ke pesta, tetapi saya harus menyelesaikan ini untuk diri saya sendiri baru-baru ini, meskipun sedikit berbeda, ini mungkin masih membantu seseorang dengan keadaan yang mirip dengan saya.

Saya menggunakan xampp di laptop untuk menjalankan aplikasi situs web lokal murni di windows. (Lingkungan yang sangat spesifik yang saya tahu). Dalam contoh ini, saya menggunakan tautan html ke file php dan menjalankan:

shell_exec('cd C:\path\to\file');
shell_exec('start .');

Ini membuka jendela penjelajah Windows lokal.

Lucas Taulealea
sumber
1
Menjanjikan, tetapi ketika saya menjalankan ini di Firefox, tab hang. (Tampaknya mengaduk-aduk sesi atau semacamnya, karena saya dapat mengakses situs lain, tetapi situs ini tampaknya digantung - bahkan di tab lain!)
Stephen R
Saya baru saja mengujinya di Firefox, ini berfungsi untuk saya, tetapi saya tidak dapat menentukan folder untuk membukanya, ini hanya terbuka di direktori root dari file php.
Lucas Taulealea
0

Berharap itu akan membantu seseorang suatu hari nanti. Saya membuat POC kecil dan menemukan ini. Tombol A, onClick menampilkan konten folder. Di bawah ini adalah HTMLnya,

<input type=button onClick="parent.location='file:///C:/Users/' " value='Users'>
Nagaraja JB
sumber