Mai întâi, butonul browse arată diferit în fiecare browser. În al doilea rând, nu există niciun indicator de progres care să vă arate cât de"> Mai întâi, butonul browse arată diferit în fiecare browser. În al doilea rând, nu există niciun indicator de progres care să vă arate cât de"> Mai întâi, butonul browse arată diferit în fiecare browser. În al doilea rând, nu există niciun indicator de progres care să vă arate cât de" />

Care este cel mai bun mod de a încărca un fișier prin intermediul unui POST HTTP cu un formular web?

Practic, ceva mai bun decât acesta:

<input type="file" name="myfile" size="50">

Mai întâi, butonul browse arată diferit în fiecare browser. Spre deosebire de butonul trimiteți pe un formular, trebuie să veniți cu niște hack-y modalitate de a-l stil.

În al doilea rând, nu există niciun indicator de progres care să vă arate cât de mult a fost încărcat fișierul. De obicei, trebuie să implementați un fel de mod de client pentru a dezactiva mai multe subiecte (de exemplu, modificați butonul de trimitere la un buton dezactivat care afișează "Trimiterea formularului ... așteptați.") Sau arătați un avertisment uriaș.

Există vreo soluție bună pentru acest lucru care nu utilizează Flash sau Java?

Yaakov: That product looks to be exactly what I'm looking for, but the cost is $1000 and its specifically for ASP.NET. Are there any open source projects that cover the same or similar functionality?

0
fr hi bn

4 răspunsuri

Ai putea să te uiți la scriptul Fancy Upload . Deși folosește blițul, arată încă bine.

0
adăugat

Este adevărat că controlul încărcării fișierelor este cu siguranță în spatele timpului. Sperăm că acest lucru va fi abordat într-o versiune viitoare asp.net.

Deși costă niște bani, am găsit Control de încărcare Telerik pentru a avea toate funcționalitățile pe care le căutați, inclusiv actualizarea stilului și progresului (optimizează de asemenea memoria pentru încărcări mari).

0
adăugat

Problema aici este că browserele lucrează în mod specific pentru a bloca orice schimbare a controlului de intrare a fișierelor de bază. Nu puteți să o modificați prin javascript, de exemplu.

Motivul este securitatea - dacă aș putea să scriu, aș putea să construiesc o pagină care, atunci când ați vizitat-o, mi-a trimis diverse fișiere de pe hard disk. Nu e dragut.

Există diferite soluții în acest moment, dar ele diferă între IE și FX (nu știu despre Safari, Opera etc.).

Uită-te la ceea ce face http://www.gmail.com în IE și FX când atașați ceva la un e -Poștă.

Vreau să văd că gunoiul "Navigați" butonul - îmi spune că nu voi lăsa nimic neașteptat.

0
adăugat

Fișierele de încărcare a fișierelor sunt în prezent în cazul în care nu doriți să implicați alte tehnologii, cum ar fi Flash, Java sau ActiveX.

Cu HTML simplu, ești destul de limitat la experiența pe care ai descris-o (nici un bara de progres, dublu-ul, etc.). Dacă sunteți dispus să utilizați unele javascript, puteți rezolva unele dintre problemele oferind feedback că încărcarea este în desfășurare și chiar care arată progresul încărcării (este un hack pentru că nu ar trebui să faceți o plimbare completă la server și înapoi, dar cel puțin funcționează).

Dacă sunteți dispus să utilizați Flash (care este disponibil aproape oriunde și pe multe platforme), puteți depăși destul de mult toate aceste probleme. O scurtă vizită a apărut două astfel , ambele libere și sursa deschisa. Nu am folosit niciuna dintre ele, dar ei arata bine. BTW, Flash nu este fără probleme, de exemplu, atunci când utilizați încărcătorul pentru mai multe fișiere pentru partajarea de diapozitive, browser-ul a continuat să se prăbușească pe mine :-(

Probabil cea mai bună soluție este să detectezi în mod dinamic dacă utilizatorul are Flash și dacă este cazul, dă-i versiunea flash a dispozitivului care îl încarcă, dar în același timp permite alegerea codului HTML de bază.

HTH

0
adăugat