Yazar |
|
cguzel
Kayıt: 11.02.2010 |
|
Arkadaşlar, JSF ile beraber javascript kullanıyorum. Javascript ile bir dosya okuyorum. ancak bu dosya ilgili js dosyasıyla aynı dizin içerisinde. Ben dosyayı şöyle bir path den okumak istiyorum.
/opt/dosyalarım/
böyle bir path verdiğim zaman okuyamıyor.
Dosyaları js dosyası ile aynı yere koymak istemiyorum. Eğer o şekilde koyarsam War dosyası büyücek. bu da tomcat için oldukça sorun çıkarır.
Bir fikri olan var mı?
|
|
Yazar |
|
maksutspahi
Kayıt: 28.09.2008 |
|
Javascript ile lokal dosyalara erişmek biraz sıkıntılı. http://stackoverflow.com/questions/371875/local-file-access-with-javascript
Bunun yerine servlet yazarsan çok kolay bi şekilde halledebilrsin. Yazacağın servlet /opt/dosyalarım/ klasöründeki dosyaları okur. Parametre olarak da dosya ismini verebilirsin.
|
|
Yazar |
|
whispered
Samsun
Kayıt: 24.10.2011 |
|
JQuery ile ajax çağrısı yapılarak dosya getirilebiliyor. Fakat bazı browserlarda(chrome da yaşanabiliyor) engele takılıyor, izin verilmediği olabiliyor.. Bu yüzden çok sağlıklı değil. Maksut'un söylediği yöntem en güvenilir yöntem bence. Dosyayı response olarak geri döndüren bir servlet yazılıp, AJAX çağrısı bu servlete yapılabilir. Bu durumda dosya kesin elinde olur.
Istanbul Universitesi
Bilgisayar Mühendisligi
|
|
Yazar |
|
cguzel
Kayıt: 11.02.2010 |
|
burada javascript kullanamaktaki ısrarım şundan kaynaklanıyor: bu dosyayı bir javascript apisinde kullanacağım. servlet çözümünü düşündüm aslında, ama APIye bunun request response ile gösterebilirmiyim o düşündürdü beni.
|
|
Yazar |
|
cguzel
Kayıt: 11.02.2010 |
|
kafamı karıştıran nokta şu ../dosya1/dosya2/file şeklinde bir path kabul ediyor ama /home/file şeklinde roottan başlayan bir path işe yaramıyor.
|
|
Yazar |
|
orhan
istanbul
admin
Kayıt: 17.11.2005 |
|
cguzel yazdi | kafamı karıştıran nokta şu ../dosya1/dosya2/file şeklinde bir path kabul ediyor ama /home/file şeklinde roottan başlayan bir path işe yaramıyor. |
relative path veriyorsan
http://abc.com/a/b/c/oku.txt
ordan okur. ama bu js ile dosya okuma olayini anlamadım. nasıl yapıyorsun onu. js ile dosya sistemine erişim çok kısıtlıdır.
N/A
|
|
Yazar |
|
whispered
Samsun
Kayıt: 24.10.2011 |
|
Browser, web sunucudaki uygulamanın çalıştığı dizin üzerinde işlemler yapmana, buradan dosya dizinlerine ulaşmana izin verebilir. Sen url'i "./" ile veya "../" ile başlatırsan da web sunucusu üzerinden işlem yapmaya devam ediyorsun. Fakat "/" ile başlattığın adres web sunucusunun root'undan başlar makinenin root'undan değil. Url, file:///home/path şeklinde olmalı. Javascript client side çalıştığından dolayı web sunucusundan bu dosya için bu url ile istekte bulunmak zorunda. AJAX bir seçenek. Fakat daha önce de söylediğim gibi browser buna engel koyuyor(Bazıları için geçerli). Tüm tarayıcılar için şunu söyleyebilirim; uygulamanın yayın yaptığı web sunucusunun dosya yapısı içine AJAX çağrısı yapılmasına izin veriliyor. Firefoxda bu engel yok ama chromeda ben karşılaştım. Güvenli sağlıklı değil. Bu yüzdendir ki dosyayı okuma işlemini server tarafından halledip, javascripti beslemen gerekecek. Çünkü Javascript ile sadece ve sadece web sunucusu mimarisine erişebilirsin (Tam güvenli oalrak). Aksi takdirde dosyalarını web sunucusu içinde tutman gerekir ulaşabilmen için.
Istanbul Universitesi
Bilgisayar Mühendisligi
|
|
Yazar |
|
cguzel
Kayıt: 11.02.2010 |
|
whispered yazdi | Browser, Sunucudaki uygulamanın çalıştığı dizin üzerinde işlemler yapmana, dosya dizinlerine ulaşmana izin verebilir. Sen url'i "./" ile veya "../" ile başlatırsan da sunucu üzerinden işlem yapmaya devam ediyorsun. Fakat "/" ile başlattığın adres sunucunun root'undan başlar makinenin root'undan değil. Url, file:///home/path şeklinde olmalı. Javascript client side çalıştığından dolayı serverdan bu dosya için bu url ile istekte bulunmak zorunda. AJAX bir seçenek. Fakat daha önce de söylediğim gibi browser buna engel koyuyor(Bazıları için geçerli). Tüm tarayıcılar için şunu söyleyebilirim; uygulamanın yayın yaptığı sunucunun dosya yapısı içine AJAX çağrısı yapılmasına izin veriliyor. Firefoxda bu engel yok ama chromeda ben karşılaştım. Güvenli sağlıklı değil. Bu yüzdendir ki dosyayı okuma işlemini server tarafından halledip, javascripti beslemen gerekecek. |
çok açıklayıcı oldu teşekkürler.
Daha öncede çok uğraştım benzer bir konu ile. java ile dosya okuyup javascripte aktarmak istedim. o zamanda Google Maps API için çeşitli hesaplamalar yapmak istiyordum. Ama javadan birtürlü javascripte paylaşım yapamadım. Daha sonra iki yol aklıma geldi, biri XML yada JSON ile bir iletişim sağlamak, ikincisi ise Java ile javascriptin ulaşabilceği bir dosya yaratmaktı. İkincisini seçmiştim.Java ile hesapları yapıp Javascript değişkenlerine atan bir bir js uzantılı dosya yazdırdım. daha sonra javascript tarafından bu yazdırılan js dosyasını import ettim. ve o js dosyaysında tanımlanmış değişkenleri kullandım. Bu şekilde çözmüştüm.
Bunu ayrıca yazmak istedim ilerde biri okurda faydalınır diye. Buna benzer bir yol şimdi uğraştığım işe çok uygun değil. bu sebeple direk javascript ile okuma yapmak istemiştim.
|
|
Yazar |
|
cguzel
Kayıt: 11.02.2010 |
|
orhan yazdi |
ordan okur. ama bu js ile dosya okuma olayini anlamadım. nasıl yapıyorsun onu. js ile dosya sistemine erişim çok kısıtlıdır. |
sanırım bunun cevabı sunda gizli;
whispered yazdi | Sen url'i "./" ile veya "../" ile başlatırsan da web sunucusu üzerinden işlem yapmaya devam ediyorsun. |
yani erişim bu path ile ( ../ ile )sunucu üzerinde olabiliyor ve normal path verildiğinde senin dediğin gibi erişim kısıtlı olduğu için erişim sağlanamıyor.
|
|
|
|
-
Del.icio.us
-
Digg
-
Facebook
-
Furl
-
Google
-
Blink
-
Simpy
-
Spurl
-
Y! MyWeb
|
|
| | | | | |