2012-09-04 28 views
5

में फ़ाइल अपलोड को कैसे सत्यापित करें I ASP.NET वेब एपीआई में फ़ाइल अपलोड के फ़ाइल एक्सटेंशन को सत्यापित करना चाहते हैं (नोट: मुझे एहसास है कि यह सत्यापन की पूर्ण-प्रमाण विधि नहीं है)।एएसपी.नेट वेब एपीआई

मैं पोस्ट की गई फ़ाइल को संसाधित करने के लिए MultipartFormDataStreamProvider का उपयोग कर रहा हूं। चूंकि प्रदाता फ़ाइल को संसाधित करने से पहले Request.Content.Headers.ContentDisposition शून्य है (ReadAsMultipartAsync के माध्यम से), अनुरोध के फ़ाइल नाम को सत्यापित करने के लिए सबसे अच्छी जगह कहां है?

उत्तर

7

आप मल्टीपार्टफॉर्मडाटास्ट्रीमप्रोवाइडर से उत्तराधिकारी हो सकते हैं और GetLocalFileName (स्ट्रीम में सामग्री पढ़ने के बाद चलाते हैं) या GetStream (स्ट्रीम में सामग्री पढ़ने से पहले चलाता है) को ओवरराइड कर सकते हैं। दोनों स्थितियों में आपके पास headers.ContentDisposition.FileName

public class CustomMultipartFormDataStreamProvider : MultipartFormDataStreamProvider 
{ 
    public CustomMultipartFormDataStreamProvider(string path) 
     : base(path) 
    { 
    } 

    public override string GetLocalFileName(System.Net.Http.Headers.HttpContentHeaders headers) 
    { 
     //validate headers.ContentDisposition.FileName as it will have the name+extension 
     //then do something (throw error, continue with base or implement own logic) 
    } 

    public override Stream GetStream(HttpContent parent, System.Net.Http.Headers.HttpContentHeaders headers) 
    { 
     //validate headers.ContentDisposition.FileName as it will have the name+extension 

     //then do something (throw error, continue with base or implement own logic) 
    } 
} 
तक पहुंच है
संबंधित मुद्दे