2010-05-28 5 views
33
public string ContructOrganizationNameLogo(HttpPostedFileBase upload, string OrganizationName, int OrganizationID,string LangName) 
    { 
     var UploadedfileName = Path.GetFileName(upload.FileName); 
     string type = upload.ContentType; 
    } 

Tôi muốn mở rộng tệp để tự động tạo tên tệp. Một cách tôi sẽ sử dụng để phân chia loại. nhưng tôi có thể sử dụng đối tượng HttpPostedFileBase để có được phần mở rộng trong cách sạch?asp.net mvc HttpPostedFileBase nhận phần mở rộng tập tin

Trả lời

99

Như thế này:

string extension = Path.GetExtension(upload.FileName); 

này sẽ bao gồm một . hàng đầu.

Lưu ý rằng bạn không nên giả định rằng tiện ích là chính xác.

+0

Có thể đáng nói đến việc xác định loại từ byte [] không phải là rất đơn giản. ;) Bạn sẽ phải giả sử sử dụng MagicStrings, sử dụng mã không được quản lý, hoặc thực hiện công việc điều tra như lặp lại tiêu thụ dưới dạng các loại khác nhau cho đến khi nó không thành công, v.v. Nếu đây là ứng dụng nội bộ, hậu quả của việc tải lên tệp có thể bị lỗi giảm nhẹ vào cuối tiêu thụ, và mối đe dọa của việc sử dụng độc hại là cực kỳ thấp, dựa trên phần mở rộng có lẽ là đủ hợp lý so với chi phí làm phần còn lại. Cân nhắc các tùy chọn của bạn cho phù hợp :) – JoeBrockhaus

+0

Tên tệp của tôi giống như "hello.zip" nhưng lệnh này trả về ". + 7ip" –