Konuyu görüntüle
IUCODERS FORUM > Programlama > JAVA > Java JavaScript dosyadan okuma
Yazar
cguzel


avatar

Kayıt: 11.02.2010
30.08.2012-17:26 #78382
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


avatar

Kayıt: 28.09.2008
31.08.2012-09:02 #78383
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


avatar
Samsun
Kayıt: 24.10.2011
31.08.2012-10:17 #78384
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


avatar

Kayıt: 11.02.2010
31.08.2012-10:47 #78385
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


avatar

Kayıt: 11.02.2010
31.08.2012-10:49 #78386
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


avatar
istanbul
admin
Kayıt: 17.11.2005
31.08.2012-11:32 #78387
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


avatar
Samsun
Kayıt: 24.10.2011
31.08.2012-11:33 #78388
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


avatar

Kayıt: 11.02.2010
31.08.2012-11:47 #78389
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


avatar

Kayıt: 11.02.2010
31.08.2012-15:03 #78391
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