2011-12-11 12 views
9

ExtJS tabanlı bir web uygulaması oluşturmaya çalışıyorum ve uygulamanın dosya yükleme alanında çalışıyorum.Kullanıcıların dosyaları kopyalayıp/yapıştır ile nasıl yüklemelerine izin verebilirim?

Kullanıcıların dosyaları kopyalayıp yapıştırarak dosyalara yükleyebilmelerini istiyorum - sadece dosyanın içeriğini kopyalamak ve yapıştırmak değil, dosyanın kendisini yapıştırmak. Örneğin, Windows'da, bir dosya seçiliyken Düzen menüsünden "Kopyala" veya "Kes" i seçebilir, daha sonra "Yapıştır" ı seçip dosyayı kopyalayabilir veya taşıyabilirsiniz - Kullanıcıların dosya yükleyebilmesini isterim Uygulamayı Yapıştır adımında, sadece kendi tarayıcılarında Yapıştır'ı seçerek.

HTML5'in sürükle ve bırak API'sini daha önce denedim, ancak bunu kullanmak istemiyoruz - kullanıcıların dosyalarını yüklemek için dosyaları kopyalayıp/kesebilmelerini istiyoruz 20 megabayttan daha küçüktür). Kullanıcı dosyayı kendi yoluna kopyalar ve dosyayı doğrudan bulup, dosyayı nerede bulacağımızı söylerse, bu da işe yarayabilir.

Bunu yapmanın bir yolunu önerenler var mı?

+1

Windows'un, başka bir yere kopyalamak/kesmek ve yapıştırmak için kullanılan dosya referansını işleyen sistem panosunda kullandığı yöntem. Bilmeniz gereken şey, tarayıcı penceresinin bir kopyala/kes/yapıştır işlemi sırasında panodaki dosya tanıtıcılarına erişmesidir. Başka bir seçenek, tarayıcıyı genişletmek için bir Flash veya Java uygulaması olabilir. –

+0

gotcha Eğer kesme/kopya tüm işlemleri işlemek için bir köprü sorta şey oluşturmanız gerektiğini söylüyorsun –

cevap

6

İstemci dosya sistemine javascript ile erişemiyorsunuz. Bu yeni Filesystem API var, ancak bu sanal korumalı bir dosya sistemi oluşturmanıza izin veriyor. Aynı problemi yaşadım, bir süre düşündüm ve şu fikirlerle ortaya çıktım. Flaş ya dosya sistemi erişimi yok: Flaş

dosya sistemine erişim ve javascript swliveconnect

Problem aracılığı ile iletişim kurmasına izin Flash köprü Yazma

  1. . Amacım üzerinde dosya sistemi erişim elde etmek olduğu için bu işe yarayabilir

  2. Java uygulaması

    aynı Flash gibi bir şey ve tekrar Bence LiveConnect

    taraftan, ama, denemek vermedi bir chromebook. Ve ChromeOS Java

  3. ActiveX

    Ben de bu bazı çözümler bulduk (en azından bazı hack olmadan) desteklemez. Ben applet bölümünden vazgeçtim, ben de bunu denemedim.

Jared Farrish'in dediği gibi, bir dosyayı kopyaladığınızda, dosyadaki dosyaya yalnızca yolu kaydeder. Daha sonra webapp'ınızda paste olayı alırsanız, sadece dizgeyi panodan çıkarın ve dosya köprüsünüze iletin.

+0

iyi kullanacağım şeyler için merak ediyorum yardım için teşekkür ederim çünkü ben onu inşa edeceğim html 5 bunu yapmak doğru mu! –

+0

oh Burada sorun, kopya/yapıştırma olayını destekleyen html5 içinde bir api varsa, o durumda bu köprüye ihtiyacım var –

+0

Pano API'sı yapıştırma olayıyla dosyaya mutlak yol alırsınız. Dosyaya erişmek için bir dosya köprüsüne ihtiyacınız var. –

-1

DropBox.com'un bunun yapılmasına izin verdiğini gördüm (chrome'da - IE'de işe yaramadı). Kesmek ve yapıştırmak istemedim, ancak dosyaları yerel bir klasörden bir dropbox sayfasına sürükledim ve dosyaları yükledi. Yani, bu doğrudan sizin kumandanıza cevap vermiyor, ama belki de bunların kodlarında nasıl yapıldığına bakabilirsiniz.

+0

Sorunu yanlış anladınız. Sürükle ve bırak değil, kopyala yapıştır. – freemanoid

İlgili konular