asp.net te fileupload işlemi

  1. 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