Yerel olarak çalıştırılan bir web sayfasında yerel bir dosyaya nasıl bağlantı oluşturabilirim?

Sabit diskime dağılmış belirli dosyaları düzenleyen bir html dosyasına sahip olmak istiyorum. Örneğin, bağlantı vereceğim iki dosyam var:

  • C:\Programlar\sort.mw
  • C:\Videos\lecture.mp4

Sorun şu ki, bağlantıların dosyaya kısayol olarak işlev görmesini istiyorum. Aşağıdakileri denedim:

<a href="C:\Programs\sort.mw">Link 1</a>
<a href="C:\Videos\lecture.mp4">Link 2</a>

... ancak ilk bağlantı hiçbir şey yapmıyor ve ikinci bağlantı dosyayı VLC'de değil Chrome'da açıyor.

Benim sorularım:

  1. HTML'imi bağlantıları dosyalara giden kısayollar olarak ele alacak şekilde ayarlamanın bir yolu var mı?

  2. HTML'yi ayarlamanın bir yolu yoksa, sabit sürücüye dağılmış dosyalara düzgün bir şekilde bağlantı vermenin başka bir yolu var mı?

Bilgisayarım Windows 7 ile çalışıyor ve web tarayıcım Chrome.

Çözüm

Yerel dosyalara bağlantı vermek istiyorsanız file:/// protokolünü (evet, üç eğik çizgi) kullanmanız gerekir.

<a href="file:///C:\Programs\sort.mw">Link 1</a>
<a href="file:///C:\Videos\lecture.mp4">Link 2</a>

Bunlar dosyayı asla yerel uygulamalarınızda otomatik olarak açmayacaktır. Bu, son bölümde ele alacağım güvenlik nedenlerinden dolayıdır. Eğer açılırsa, sadece tarayıcıda açılacaktır. Tarayıcınız dosyayı görüntüleyebiliyorsa görüntüleyecektir, aksi takdirde muhtemelen dosyayı indirmek isteyip istemediğinizi soracaktır.

Chrome'un modern sürümleri gibi bazı tarayıcılar http protokolünden dosya protokolüne geçmeyi bile reddedecektir, bu nedenle bu işi yapmak istiyorsanız bunu dosya protokolünü kullanarak yerel olarak açtığınızdan emin olsanız iyi olur.

Neden file:/// olmadan takılıyor?

URL'nin ilk kısmı protokoldür. Protokol birkaç harf, ardından iki nokta üst üste ve iki eğik çizgiden oluşur. HTTP://veFTP://geçerli protokollerdir;C:/` değildir ve eminim ki doğru düzgün bir protokole bile benzememektedir.

C:/' de geçerli bir web adresi değildir. Tarayıcı bunun boş bir bağlantı noktası belirtilmiş http://c/ olması gerektiğini varsayabilir, ancak bu başarısız olacaktır.

Tarayıcınız bunun yerel bir dosyaya atıfta bulunduğunu varsaymayabilir. Bu varsayımı yapmak için çok az nedeni vardır çünkü genel siteler genellikle insanların yerel dosyalarına bağlantı vermeye çalışmaz.

Yani yerel dosyalara erişmek istiyorsanız: dosya protokolünü kullanmasını söyleyin.

Neden üç eğik çizgi?

Çünkü bu [Dosya URI şeması]'nın bir parçasıdır (http://en.wikipedia.org/wiki/File_URI_scheme). İlk iki eğik çizgiden sonra bir ana bilgisayar belirtme seçeneğiniz vardır. Bir ana bilgisayar belirtmezseniz, sadece kendi bilgisayarınızdaki bir dosyaya atıfta bulunduğunuzu varsayacaktır. Bu, file:///C:/etcnin file://localhost/C:/etc için bir kısayol olduğu anlamına gelir.

Bu dosyalar tarayıcınızda açılmaya devam edecek ve bu iyi bir şey

Tarayıcınız bu dosyalara, internetin herhangi bir yerinde aynı dosyaya nasıl yanıt veriyorsa aynı şekilde yanıt verecektir. Bu dosyalar varsayılan dosya işleyicinizde (örneğin MS Word veya VLC Media Player) açılmayacak ve Dosya Gezgini'nden dosyanın konumunu açmasını istemek gibi bir şey yapamayacaksınız.

Bu, güvenliğiniz için son derece iyi bir şeydir.

Tarayıcınızdaki siteler işletim sisteminizle çok iyi etkileşime giremez. İyi bir site makinenize VLC.exe içinde ders.mp4 dosyasını açmasını söyleyebiliyorsa, kötü niyetli bir site de CMD.exe içinde virüs.bat dosyasını açmasını söyleyebilir. Ya da makinenize birkaç Uninstall.exe dosyasını çalıştırmasını veya Dosya Gezgini'ni milyonlarca kez açmasını söyleyebilir.

Bu sizin için uygun olmayabilir, ancak HTML ve tarayıcı güvenliği gerçekten sizin yaptığınız şey için tasarlanmamıştır. Eğer VLC.exe ile lecture.mp4 dosyasını açabilmek istiyorsanız, bunun yerine bir masaüstü uygulaması yazmayı düşünün.

Yorumlar (6)

Eğer bilgisayarınızda IIS çalıştırıyorsanız, ulaşmaya çalıştığınız dizini Sanal Dizin olarak ekleyebilirsiniz. Bunu yapmak için ISS'de Sitenize sağ tıklayın ve "Sanal Dizin Ekle" tuşuna basın. Sanal klasöre bir isim verin. Sanal klasörü yerel bilgisayarınızdaki klasör konumunuza yönlendirin. Ayrıca belirli klasöre erişim ayrıcalıklarına sahip kimlik bilgilerini de sağlamanız gerekir, örneğin HOSTNAME\kullanıcı adı ve şifre. Bundan sonra sanal klasördeki dosyaya sitenizdeki herhangi bir dosya gibi erişebilirsiniz.

http://sitename.com/virtual_folder_name/filename.fileextension

Bu arada, aksi takdirde dosya protokolü file://'i kabul etmeyen Chrome ile de çalışır.

Umarım bu birilerine yardımcı olur :)

Yorumlar (1)

En iyi ihtimalle kalitesiz

<a href="file://///server/folders/x/x/filename.ext">right click </a></td>

ve ardından sağ tıklayın, "konumu kopyala" seçeneğini seçin ve ardından url'ye yapıştırın.

Yorumlar (1)