"File Upload" bir standart html öğesidir, daha doğrusu en azından asp.net yazan çoğu insan gibi visual studio kullanıyorsanız, "toolbox kısmında "standard" altında bulunabilir. Sitenin bulunduğu sunucuya ya da başka bir yere dosya yüklenmesi gerektiği zaman kullanılan bir öğedir. Örnek olarak sitenize üye kaydederken, her üyeye profil resmi yükletmek isterseniz fileupload kullanabilirsiniz. Zira Facebook Connect var Html 5 var işim da diyebilirsiniz ya neyse.
<asp:fileupload id="fluAvatar" runat="server"/>
<span>genişlik: en az 400px boyutlu jpeg, gif, png uzantılı dosyalar</span>
- Burada gördüğünüz asp:fileupload öğesi obje yükleme öğesi, içindeki id ise benim seçtiğim bir isim.
- span dahilinde bulunan kısım tabii ki zorunlu değil, sadece örnek açıklama olarak verilmiş bir yazı.
Kullanıcının fileupload u kullanarak eklediği obje, resim vb. ile ilgili de back-end de şu şekilde işlem yapabilirsiniz.
string img = "";if (fluAvatar.FileName.ToString() == "") { return; }else { img = fluAvatar.FileName.ToString(); }
string imageUrl = "/images/" + fluAvatar.FileName.ToString();fluAvatar.SaveAs(Server.MapPath(imageUrl));
- "img" adındaki değişken sadece "fluAvatar" adlı file upload öğesiyle seçilen dosya ismini taşımaktadır. Eğer bu boş ise return; diyerek işlem sonladırılıyor.
- "imageUrl" değişkeni "img" değişkenindeki isimin başına "/images/" eklenerek tutuluyor. Burada "images" sadece benim sunucu üzerinde seçtiğim dosyanın ismi özel bir anlamı yok. Dosyaları "SaveAs" ile oraya yüklediğim için sunucudaki tam adreslerini tutmak için "imageUrl" adındaki değişkeni kullanıyorum.
Unutulmaması Gerekenler:
- Yükleme yaptığınız dosyaya panel kullanarak ya da sunucuya direk giriş izniniz varsa web site üzerinde yazma izni vermeyi unutmayın.
- File Upload yükleme limiti machine.config de belirtildiği üzere 4mb dır. Ancak web.config üzerinden bunu değiştirebilirsiniz. Aynı yükleme düşme süresini de buradan şu şekilde değiştirebilirsiniz.
<system.web><httpRuntime executionTimeout="240" maxRequestLength="20480" /></system.web>
- Ayrıca bu yükleme dosyasını ve boyut ayrıcalığını spesifik olarak "location" (web.config) ile belli bir dosya ile sınırlandırabilirsiniz.
<location path="images"><system.web><httpRuntime executionTimeout="240" maxRequestLength="20480" /></system.web></location>
- Eğer yüklediğiniz obje, resimlerin isimlerini önceki kısımda bahsettiğim gibi veritabanında bir tabloya yazıyorsanız. Onları site arayüzüne çağırırken de isimlerini ve "/" işaretlerini düzgün verdiğinize özellikle dikkat edin.