Resim Yükle -

6 Cevap php

Iyi web geliştirme öğrenmek için, bana upload ve ben daha önce ASP yaptık bir sunucu, dosya indirmek sağlayacak bir PHP sayfası yazmaya çalışıyorum.

Ben Nedeni basit olması gerektiğini söylüyor şey üzerinde açma, ancak duyuyorum, ama ben bunun için bir cevap bulmak mümkün değilim.

İşte Tarama / göndermek için oldukça standart kod:

<form enctype="multipart/form-data" action="uploadFile.php" method="POST"/>  
<input type="hidden" name="MAX_FILE_SIZE" value="500000" />  
<input type="file" name="pix" size="100" />  
</form>

Eğer çıkan web sayfasında "Browse .." düğmesine basın Şimdi zaman, standart dosya iletişim almak ve sonra metin kutusuna doğru dosya yolu ile sayfaya dönün. (Ben Gönder tıkladığımda VE, benim uploadfile.php gayet güzel çalışıyor.)

Ne yapmak istiyorum kullanıcı göstermek aslında (iyi, bana) bir IMG-uygun bir dosya ya da başka non-görüntü dosyaları için bir yer tutucudur resim ise web sayfasında resim - ÖNCE kullanıcı Gönder düğmesini tıkladığında .

Istemci tarafı dosyası için doğru yol adı sayfada SAĞ olduğunu unutmayın. Ben bana yaşam için DOM onu yakalamak için nasıl anlamaya, ya da bu konuda JavaScript getiriyi-ile-doğru-yoladıyla resmi gösteren tetiklemek için fark almak için nasıl anlamaya olamaz.

(- Ben burada önceki soruları ve cevapları ile arama biraz deneyin vermedi, ama ben belki teknik terimleri ancak KAVRAMLAR değil sadece eksik olduğumda bir soru çerçeve zor ben bu sorunun genişliğini için özür dilerim.)

6 Cevap

Firefox ve DosyaListesi API destekleyen diğer tarayıcılar ile yapabilirsiniz.

var myImage = new Image(),
myImage.src = myFileInput.files[0].getAsDataURL();

Düzenleme: istismar edilebilir gibi maksimum dosya boyutu istemci tarafında belirtilen olmamalıdır ama en azından kullanarak istemci tarafında bunu doğrulamak için files[0].getAsBinary().length.

Sen arka planda formu ve geçici bir dizine görüntü dosyasını kaydetmek için Ajax kullanabilirsiniz. Ardından, img elemanın src niteliğini değiştirerek sayfada bunu göstermeye çalışacağız. Kullanıcı nihayet teslim tıkladığında, nihai hedefe görüntüyü kopyalayın. O iptal ya da uzak gözatarsa ​​- dosyasını silin.

Sizin için ne soruyorsun düşünün. Bir web sayfası (değil sunucunun) dosya sistemi keyfi dosyaları yüklemek olsaydı, ne herhangi bir kötü niyetli web sitesi için özel verilerinizi dışı kalma onu durdurmak istiyorsunuz?

Sen sadece Flash ile yapabilirsiniz.

Gibi Google bir şey "flash image upload with preview"

Bu sorunun tek bir çözüm yok olduğu doğrudur. Ama web mevcut durumda, bunu yapmak için en iyi yoldur Flaş. See this post for a how-to. Flaş özel bir çözümdür, ama güvenli gitmek yüzden tüm bilgisayarların% 98 + üzerinde uygulanmaktadır. Sadece ilerici geliştirme / zarif bozulması metodoloji aşağıdaki bunu uygulamak emin olun.

Bir java uygulaması yoluyla bunu yapabilirdi, yaygın olarak kullanılabilir ve sigara tescilli var, ama bu benim overkill görünüyor (ama ben hiçbir java geliştirici değilim).

Silverlight? Peki, kullanıcıların çoğu veda. Bildiğim kadarıyla ben biliyorum, bu kadar yaygın olarak kullanılabilir olmaktan bulunuyor. Yani insanlar onları senin o UI görmek edebilmek için bir eklenti yüklemeniz gerekir. Bu (intranet, elle kendiniz ayarlayabilirsiniz makineleri sabit bir dizi, vb) olsa da bazı bağlamlarda Tamam olabilir.

'Bir ajax-tabanlı çözüm patentli teknolojilerine dayalı olmama avantajı vardır, ancak bu sunucuya dosya yükleme demektir, bu yüzden büyük görüntüler için olduğu gibi, oldukça uzun sürer, sizin durumunuzda bir çözüm değil ve bu olmazdı t sağ, artık bir önizleme gibi hissediyorum?

If you are looking for a non IE (including IE 9) solution this might be the solution. (Of course with tweaks) http://www.html5rocks.com/en/tutorials/file/dndfiles/

Başka upload ve küçük ya da önizlemesini görüntülemek için sunucudan yol almak zorunda. Çoğu tarayıcılar çalışıyor ama hala saf bir web çözüm değildir flash / java / Silverlight gibi diğer yolları vardır.