Nasıl Firefox 3 HTML giriş formu dosya yolunu almak için
Aşağıda gösterildiği gibi <input type="file">
ile basit bir HTML Formu var:
<form>
<label for="attachment">Attachment:</label>
<input type="file" name="attachment" id="attachment">
<input type="submit">
</form>
IE 7'de (ve muhtemelen tüm ünlü tarayıcıları da dahil olmak üzere eski Firefox 2), Eğer biz göndermek gibi bir dosya '//1/path/to/file/dosya' çalışıyor düzgün ve verdiği tam yolu ve dosya adı dosya.
Firefox 3, Bu sadece, çünkü onların yeni 'güvenlik' Firefox hata takip sistemi (https://bugzilla.mozilla.org/show_bug.cgi?id=143220) açıklandığı gibi yolunu kesecek . özelliği dosya adını döndürür
Bu 'yeni özellik' benim web uygulaması içinde tüm upload formları Firefox 3 çalışmamasına neden oluyor çünkü. üstesinden gelmek için nasıl hiçbir ipucu var
Herkes hem Firefox 3 ve IE 7 üzerinde dosya yolunu almak için tek bir çözüm bulmak için yardımcı olabilir misiniz?
CEVAP
IE 7'de (ve muhtemelen tüm ünlü tarayıcıları da dahil olmak üzere eski Firefox 2), Eğer biz göndermek gibi bir dosya '//1/path/to/file/dosya' çalışıyor düzgün ve verir tam yolu, dosya ve dosya adı.
Bu 'yeni özellik' benim web uygulaması içinde tüm upload formları Firefox 3 çalışmamasına neden oluyor çünkü. üstesinden gelmek için nasıl hiçbir ipucu var
Burada büyük bir yanlış anlaşılma var. Neden hiç ihtiyacın vartamsunucu tarafında dosya yolu? Müşteri olduğumu ve C:\path\to\passwords.txt
bir dosya var ve sana tam dosya yolunu verdiğim düşünün. Nasıl bir sunucu olarak şimdiye kadar onun olsuniçindekiler? Yerel disk dosya sistemi açık TCP bağlantısı var mı? Farklı bir sunucu makine üzerinde üretime web getirdiğin zaman işlevselliği upload dosya test ettiniz mi?
Sadece ne zaman işe yarayacakher ikisi deistemci ve sunucuda çalışırfiziksel olarak aynısonra erişim yok çünkü makine,aynısabit disk dosya sistemi. Bu sadece yerel olarak web sitesi geliştirme ve böylece aynı makine de tesadüf çalışır hem tarayıcı (istemci) ve Web sunucusu (server) olduğunda ortaya çıkar.
Tam dosya yolunu MSIE gönderiliyor ve diğer antik webbrowsers bir bağlı olduğunugüvenlik hata. W3 RFC2388 özellikleri asla tam dosya yolunu söylemiş. Yalnızca dosya adı. Firefox düzgün işini yapıyor.
Yüklenen dosyaları işlemek için, tam dosya yolunu bilmek gerekmez. Tam dosya ilgilenmesi gerekir değiliçindekileristemci zaten multipart/form-data
istek halinde istekte sunucuya vücut gönderdi. Formunuzu RFC2388 söyledi: aşağıdaki gibi değiştirin
<form action="upload-script-url" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit">
</form>
Sunucu tarafında yüklenen dosyanın içeriğini almak için nasıl kullanıyorsun sunucu tarafı programlama dili bağlıdır.
Java/JSP:
HttpServletRequest#getPart()
Apache Commons FileUpload API bunu ayrıştırmak için kullanmak istiyorum. Seni ihbar zevkinizeOutputStream
herhangi yazabilirsiniz dosya içeriği ileInputStream
ile bitmelidir. this answer bir örnek bulabilirsiniz./AKSARAY Java:
<h:inputFile>
bileşen ya da kullandığınız herhangi bir diğer dosya upload bileşeni bileşen kütüphanesi tarafından sağlanan kullanmak istiyorum. Ayrıca burada,InputStream
bir lezzet dosya içeriğini almak istiyorum. Bir örnek için this answer bkz.PHP: dosya içeriğini zaten örtülü olarak geçici diskte depolanır.
move_uploaded_file()
istediğiniz yere taşımak için fonksiyonu kullanmak istiyorum. Ayrıca PHP manual bkz.ASP.NETbunu ben değil, çünkü benden ayrıntılı bir cevap, ama Google benim için bazı örnekler buldu: ASP.NET example, ASP.NET 2.0 example
Dosya adı yüklenen dosyayı parçası elde etmek için istediğiniz zaman gerekirtrimtam yolu ve dosya adı. Bu Bilgi yani tamamen alakasız. Ayrıca Bkz örneğin bu 25**
Neden Fileİtem.() getName tam yolunu ve dosya adını döndürmek?
Internet Explorer yüklenen dosyayı değil, sadece temel dosya adına tüm yolu sağlar. FileUpload istemci (tarayıcı) tarafından temin edilen tam olarak sağladığından, uygulamanızda bu yol bilgileri kaldırmak isteyebilirsiniz.
Nasıl Python ile bir mutlak dosya yolu...
Nasıl CMD ile dosya yolundan klasör yo...
Nasıl bir giriş formu üst almak için?...
Nasıl değiştirmek dosya < seçilen;ty...
Nasıl HTML 5 giriş type=&; tarih"...