2013-05-30 18 views
12

Yüklenmiş bir dosyayı fiziksel yolla HttpPostedFileBase.SaveAs() yöntemiyle kaydetmek istiyorum.Yüklenen bir dosyayı HttpPostedFileBase.SaveAs ile fiziksel yoldan kaydetme

Fiziksel yol seçtiğimde, özel bir durum göründüğünde yolun sanal olması gerektiğini belirtir.

var fileName = Path.GetFileName(fileurl.FileName); 
var path = "C:/Projets" + fileName; 
fileurl.SaveAs(Server.MapPath(path)); 

Dosyayı istediğim her yere kaydedebilmek için kodumu nasıl değiştirebilirim?

+0

Bunun mümkün olduğunu düşünmüyorum. IIS uygulamanızı bir Uygulama Havuzunda çalıştırır, bunu bir kum kutusu olarak düşünün. Bu alana sadece erişim izniniz var. – Belogix

+0

@Belogix, ancak uygulama havuzu işlemcisinin iznini nasıl değiştirebilirim, çünkü dosyayı o alana kaydediyorum, daha sonra silme izinleri yok ve hatta yeni bir dizin veya dosya dosyası oluşturmam gerekiyor – Lamloumi2

cevap

18

Server.MapPath yalnızca web sitesinin bir parçası olan fiziksel konumlarla çalışır. Eğer aşağıdaki kullanabilirsiniz dışında dosyayı kaydetmek istiyorsanız: uygulama havuzu altında çalıştığı hesabın bu klasöre yazma izinlerini verildiğine dikkat olsa

var fileName = Path.GetFileName(fileurl.FileName); 
fileurl.SaveAs(Path.Combine(@"c:\projects", fileName)); 

emin olun.

1

Sunucu.MapPath sanal yol içindir. Path.GetFullPath (yol) kullanmayı deneyebilirsiniz.

İlgili konular