2010-02-18 7 views
14

Mam aplikację asp.net mvc, która przesyła plik i przechowuje je w jednym z katalogów, w których znajduje się witryna.Pytanie metody HttpPostedFileBase.SaveAs

Moje pytanie brzmi ... Kiedy wykonujesz metodę HttpPostedFileBase.SaveAs() zapisując ją z tą samą nazwą co istniejąca nazwa pliku w folderze, czy HttpPostedfileBase nadpisuje plik?

Dzięki za milion!

Odpowiedz

23

Tak. Każdy istniejący plik zostanie nadpisany. (Sprawdziłem źródło)

+0

Dziękuję za odpowiedź na moje pytanie. Zastanawiasz się, które źródło referencyjne powiedziało, że nadpisuje plik? Byłbym wdzięczny, gdybyś mógł wskazać mi, gdzie jest. Jeszcze raz dziękuję! – mallows98

+0

'System.Web.HttpPostedFile' w' System.Web.dll'. Jedyną implementacją 'HttpPostedFileBase' jest cienkie opakowanie wokół niego. (Widać to w Reflectorze). – SLaks

+1

Oczywiście może nie zostać nadpisany w przypadku problemów z uprawnieniami (lub gdy ustawiona jest flaga ReadOnly). W takim przypadku wygeneruje wyjątek. –

5

HttpPostedFileBase to tylko abstrakcyjna klasa bazowa - co SaveAs zależy od implementacji. Jednak jest wyraźnie przeznaczone do abstrakcji HttpPostedFile, a to spowoduje nadpisanie dowolnych plików w lokalizacji docelowej - jeśli może (to znaczy ma odpowiednie uprawnienia).