{veefee}
iletişim
yazar giriş
ara
getir
asp.net te fileupload işlemi
sadece standart bir html input kontrolü kullanıp seçilen dosyanın bilgilerini client dan okuyarak yapılabilecek işlemdir. inpute kontrolünün type ı file olmalıdır. bu kontrol ile dosyanın yolu, adı ve boyutu elde edilebilir.
dosyanın bilgilerini elde etmek için system.io namespace i içinde yer alan fileinfo sınıfı tipinde bir objeye ihtiyaç duyulur. örneğin dosyanını boyutu şöyle elde edilir;
system.io.fileinfo inf = new fileinfo(input_kontrol.postedfile.filename);
int boyut = input_kontrol.postedfile.contentlength;
fileinfo dosya bilgilerine ulaşmak için kullanılan bir wrapper sınıftır.
client tarafındaki dosyayı sunucu tarafına kaydetmek için sunucuda dosyanın saklanacağı yerin bilgisi lazım.
server.mappath("~") + "\\" + (@"files\" );
ifadesi ile uygulama klasöründe manuel olarak oluşturulan files klasörünün tam yolu alınır.
akabinde sıkça kullanılan sınıflardan stream sınıfını kullanarak dosyayı okunur ve sunucuya yazılır.
//dosya oku..
byte[ content = new byte[boyut];
stream reader = input_kontrol.postedfile.inputstream;
reader.read(content, 0, boyut);
reader.close();
//dosyayı yaz..
stream writer;
writer = file.create(path, boyut);
writer.write(content, 0, boyut);
writer.close();
dosya upload esnasında yazma izni yoktur şeklinde hata dönebilir. bu hatayı düzeltmek için dosya klasörü için , web sunucu iis5 ise aspnet kullanıcısına iis6 ise network service kullanıcısına yazma izni verilmelidir.
shan,
03.11.2009 02:36,
#718