Şimdi Ara

Asp.net web sitesinde resmi sunucudaki klasöre kaydedemiyorum

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
6
Cevap
0
Favori
479
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • asp.net bir web sitesi hazırladım. bu sitenin bir sayfasında kullanıcıya fotoğraf yükletmem gerekiyor.. Localde denediğimde fotoğraf klasöre kayıt oluyor ama sunucuya yükleyip denediğimde bu olmadı.. ne yapacağımı şaşırdım lütfen yardımcı olun :((((

    Resim ekletmeye çalıştığım kodlar resimdeki gibidir...
    Lightshot
    Screenshot
    https://prnt.sc/nr5olo



    < Bu mesaj bu kişi tarafından değiştirildi mceelik06 -- 21 Mayıs 2019; 2:11:31 >







  • Server.MapPath("~/xxx/xxx/xxx") stringin icine ~ bu isareti koyup deneyin bakalim
  • sunucuda o klasore yazma izni vermen gerekli . App_data default olarak iis den yazma izinli gelir lakin oradanda site.aspx/app_data/resim1.jpg diye okuyamazsın default olarak görüntüleme izni kapalıdır.
  • Mahoninin dediği gibi önce klasörler izinlervermen lazım ondan sonraki adımda mesela kayıt şeyli böyle olmalı.

    sana kendi yazdığım kod bloğunu vereyim ( daha önce forumda ve nette paylaşmıştım )

    hem dosyaya isim veriyorsun ( burası önemli isim vermezsen aynı isimle kayıt eder o yüzden random isim oluşturdum kodda ) hemde istediğin şekilde resize yani boyutlandırıyorsun ve kaydediyorsun.

    Not: kodlarımı Ingilizce yazarım ama zaten anlaman kolay olur ingilizcenin olduğunu var sayıyorum. Hatta // acıkalmarıda Ingilizce yapmıştım sonrada türkçeye cevirdim belki türkçe olması daha iyi anlamanı sağlar diye. Birde unutma tek bir klasör tanımlamadım

    if (FileUpload1.HasFile)
    {
    if (Path.GetExtension(FileUpload1.PostedFile.FileName) == ".jpg" || Path.GetExtension(FileUpload1.PostedFile.FileName) == ".png")
    {
    Random rndm = new Random();
    string PhotoExtensions = Path.GetExtension(FileUpload1.PostedFile.FileName);
    string PhotoName = FileUpload1.PostedFile.FileName /*+ rndm.Next(99999999, 999999999) + PhotoExtension*/;
    //öncelikle \\images\\ klasörüne geçici olarak resmimizi attık
    FileUpload1.SaveAs(Server.MapPath("~\\images\\") + PhotoName);
    // Sonra o attığımız resmi bitmapa çevirdik
    Bitmap Photo = new Bitmap(Server.MapPath("~\\images\\") + PhotoName);
    int Width = 215;
    int Height = 215;
    //resmi boyutlandırma işlemi
    Size Size = new Size(Width, Height);
    //Resmi boyutlandırıyoruz.
    Bitmap ResizedPhoto = new Bitmap(Photo, Size);
    string Resizedandsavedphoto = "~\\images\\Resizedphotos\\" + PhotoName;
    //Boyutlandırdığımız resmi \\images\\Resizedphotos\\ klasörüne alıyoruz
    ResizedPhoto.Save(Server.MapPath(Resizedandsavedphoto), ImageFormat.Jpeg);
    Photo.Dispose();
    ResizedPhoto.Dispose();
    // ve geçici olarakilk attığımız resmi siliyoruz ( boşa yer kaplamasın )
    FileInfo Firstuploadedphoto = new FileInfo(Server.MapPath("~\\images\\") + PhotoName);
    Firstuploadedphoto.Delete();
    ImgProfilePhoto.ImageUrl = Resizedandsavedphoto.Clean();
    }
    else
    {
    lblwarning.Text = " Somethings gone wrong !!! ";
    }

    }
    }



    < Bu mesaj bu kişi tarafından değiştirildi OzMeN OzzY -- 8 Ağustos 2019; 21:0:40 >




  • Sunucuda klasöre yazma izni vermelisiniz. İkincisi Server.MapPath sizi kodu yazdığınız dosyanın konununa götürür. O konuma göre kayıt yapacağınız klasörün yolunu yazınız.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.