2010-02-18 45 views
14

Tôi đã có một ứng dụng asp.net mvc tải lên một tập tin và lưu trữ chúng trong một trong những thư mục mà trang web nằm.HttpPostedFileBase.SaveAs câu hỏi phương pháp

Câu hỏi của tôi là ... Khi bạn thực thi phương thức HttpPostedFileBase.SaveAs() lưu nó với cùng tên với tên tệp hiện có trên thư mục, thì HttpPostedfileBase có ghi đè lên tệp không?

Cảm ơn một triệu!

Trả lời

23

Có. Mọi tệp hiện có sẽ bị ghi đè. (Tôi đã kiểm tra nguồn)

+0

Cảm ơn bạn đã trả lời câu hỏi của tôi. Đã tự hỏi nguồn tham chiếu nào đã nói rằng nó ghi đè lên tệp? Sẽ đánh giá cao nếu bạn có thể chỉ cho tôi nó ở đâu. Cảm ơn bạn lần nữa! – mallows98

+0

'System.Web.HttpPostedFile' trong' System.Web.dll'. Việc thực hiện duy nhất 'HttpPostedFileBase' là một trình bao bọc mỏng xung quanh nó. (Bạn có thể thấy điều này trong Reflector) – SLaks

+1

Nó có thể tất nhiên không ghi đè trong trường hợp các vấn đề quyền (hoặc nếu cờ ReadOnly được thiết lập). Trong trường hợp như vậy, nó sẽ ném một ngoại lệ. –

5

HttpPostedFileBase chỉ là lớp cơ sở trừu tượng - những gì SaveAs phụ thuộc vào việc triển khai. Tuy nhiên, nó rõ ràng có nghĩa là trừu tượng HttpPostedFile và nó sẽ ghi đè lên bất kỳ tệp nào ở vị trí đích - nếu nó có thể (nghĩa là có các quyền thích hợp).