Bir html bağlantısını bir klasör açmanın yolları nelerdir


106

Bir uygulamanın kullanıcılarının bir web sayfasındaki bir bağlantıya tıklayarak bir klasörü açmasına izin vermem gerekiyor. Klasörün yolu ağ üzerindedir ve her yerden erişilebilir. Muhtemelen bunu yapmanın kolay bir yolu olmadığına eminim, ama belki yanılıyorum?


4
Aşağıda cevap verdim; bu, yanlış yönlendirilmiş güvenlik tarafından neredeyse imkansız hale getirilen kurumsal web uygulamalarının ortak bir gereksinimidir (güvenilir http sayfalarında dosya bağlantılarını etkinleştirmek mümkün olmalıdır). Yalnızca Windows üzerinde kapsamlı bir şekilde test ettim.
Andrew Duffy

Yanıtlar:


107

Windows Gezgini'nde paylaşılan bir klasör açmak istiyor musunuz? Bir file:bağlantı kullanmanız gerekiyor , ancak bazı uyarılar var:


4
IE'de yalnızca UNC yolu ve bağlantıyı içeren web sitesi aynı etki alanında, yani sadece intranette ise.
Stefan Steiger

4
Bunun artık doğru olmadığını düşünüyorum - IE'nin daha yeni sürümleri bu davranışı Chrome / Safari / vb. Gibi engelliyor gibi görünüyor.
ZeekLTK

1
Bunu IE 11'de denedim ve aslında yerel bir dosyayı indirmeden açabilirsiniz (zaten var olan bir dosya yolunu açarken olduğu gibi). Bu hala Chrome'da mevcut değil.
Hohohodown


@Andrew Duffy, Google Chrome'un bu davranışı engellediğini belirten herhangi bir belge var mı? Ben bu konuda daha fazla bilgi edinmek istiyorum
cinas

7

URL file://[servername]/[sharename], ağdaki paylaşılan klasöre bir gezgin penceresi açmalıdır.


4

klasör izinlerinizin, bir dizin listesine izin verecek şekilde ayarlandığından emin olun, ardından örneğin chmod 701'i (yine de riskli olabilir) kullanarak bağlantı noktanızı bu klasöre yönlendirin

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

o dizinde herhangi bir index.html dizin dosyası bulunmadığından emin olun


Bu cevap işe yarıyor. "İzin verilen dizin listesi" bölümü çok önemlidir. İzin verilmiyorsa etkinleştirebilirsiniz, ancak bu her sunucu uygulaması için farklıdır.
Travis

3

File: ///// kullanılması, güvenlik ayarları orta düzeyde bile olsa çalışmaz.

Kullanıcıların yalnızca bir ağda bulunan dosyaları indirebilmesini / görüntüleyebilmesini * veya paylaşabilmesini istiyorsanız, IIS'de bir Sanal Dizin kurabilirsiniz. Özellikler sekmesinde "Başka bir bilgisayarda bulunan bir paylaşım" ın seçildiğinden ve "Farklı bağlan ..." seçeneğinin ağ konumunu görebilen bir hesap olduğundan emin olun.

Web sayfanızdan sanal dizine bağlanın (örn. Http: // siteniz / sanaldizin / ) ve bu, web tarayıcısında dizinin bir görünümünü açacaktır.

* Kullanıcıların dosya eklemesine ancak denememesine izin vermek için sanal dizine yazma izinlerine izin verebilir ve ağ izinlerinin bu ayarı geçersiz kılacağını varsayabilirsiniz.


Chrome ve IE'nin daha yeni sürümleri, dosya olmayan web sayfalarından yerel file: // kaynaklarına erişimi engelleyeceğinden, bu bugün geçerlidir. Ek olarak, manuel olarak eklenmesi ve çalıştırılması gerekmesine rağmen bu IIS Express'te çalışacak şekilde ayarlanabilir.
Schmuli


1

Ayrıca, güvenlikten kaçınmak için bağlantı adresini kopyalayıp yeni bir pencereye yapıştırabilirsiniz. Bu, chrome ve firefox'ta çalışır, ancak firefox'a eğik çizgi eklemeniz gerekebilir.


1

Partiye biraz geç kaldım, ancak son zamanlarda bunu kendim için çözmek zorunda kaldım, biraz farklı olsa da, yine de benimkine benzer koşullara sahip birine yardımcı olabilir.

Windows üzerinde tamamen yerel bir web sitesi uygulaması çalıştırmak için bir dizüstü bilgisayarda xampp kullanıyorum. (Bildiğim çok özel bir ortam). Bu örnekte, bir php dosyasına html bağlantısı kullanıyorum ve şunu çalıştırıyorum:

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

Bu, yerel bir Windows gezgini penceresi açar.


1
Umut verici, ancak bunu Firefox'ta çalıştırdığımda sekme kilitleniyor. (Oturumu karıştırıyor gibi görünüyor, çünkü diğer sitelere erişebiliyorum, ancak bu site asılı görünüyor - diğer sekmelerde bile!)
Stephen R

Firefox'ta test ettim, benim için çalışıyor, ancak açılacağı klasörü belirtemiyorum, sadece php dosyasının kök dizininde açılıyor.
Lucas Taulealea

0

Umarım bir gün birine yardımcı olur. Küçük bir POC yapıyordum ve bununla karşılaştım. Bir düğme, onClick klasörün içeriğini görüntüler. HTML aşağıdadır,

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

Chrome bana bir hata veriyor: Yerel kaynağı yüklememe izin verilmiyor: <URL>
Dave Sottimano
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.