2012-12-06 16 views
5

मैं एक रूप जहाँ उपयोगकर्ता वहाँ संपादित करेंगे प्रोफ़ाइल और एक छवि अपलोड अगर वे चाहते हैं बनाने के लिए चाहते थे, यहाँ मेरी देखेंफ़ाइल को अपलोड करने MVC 3 में हमेशा शून्य है

// फार्म स्ट्रिंग है @using(Html.BeginForm("EditProfile","Employee",FormMethod.Post, new { enctype = "multipart/form-data " }))

// इनपुट एचटीएमएल <input type="file" name="file" id="file"/>

// जमा करें <input type="submit" name="SubmitBtn" value="SaveProfile" /> <input type="submit" name="SubmitBtn" value="Cancel" />

अब मेरे नियंत्रक

//Profile Modification 
    [Authorize] 
    [HttpPost] 
    public ActionResult EditProfile(employer model, string SubmitBtn,HttpFileCollection file) 
    { 
     switch (SubmitBtn) 
     { 
      case "SaveProfile": 
       try 
       { 
        if (ModelState.IsValid) 
        { 
          //the file is always null 
         if (file != null) 
         { 
          //Function I want to Apply on file 
          model.logoname = logouploded(file); 
          return RedirectToAction("Profile", "Employer"); 
         } 
         return RedirectToAction("EditProfile"); 
        } 
        //ChangeEmployeeProfile(model); 

       } 
       catch (Exception ex) 
       { 
        ViewBag.warn = ex.Message; 
        return View(model); 
       } 
       break; 
      case "Cancel": 
       return RedirectToAction("index"); 
     } 
     return View(model); 
    } 

अब कोई बात नहीं क्या फ़ाइल मैं फ़ाइल हमेशा आ रहा है अशक्त मैं भी HttpFileCollectionBase की कोशिश की है के रूप में कार्रवाई समारोह में मानदंड अभी भी फ़ाइल अशक्त था अपलोड

बस कर्मचारी की मॉडल केवल छवि फ़ाइल नाम शामिल क्योंकि उल्लेख करने के लिए मैं केवल डेटाबेस में छवि का नाम सहेजना चाहते हैं।

+0

हाय, क्या आपने पोस्ट के बाद 'Request.Files' संग्रह में चेक किया है? –

+2

"मल्टीपार्ट/फॉर्म-डेटा" में अंतिम स्थान हटाएं। सही: "मल्टीपार्ट/फॉर्म-डेटा" –

उत्तर

8

HttpFileCollection प्रकार को HttpPostedFileBase पर बदलें।

+0

"मल्टीपार्ट/फॉर्म-डेटा" में व्हाइटस्पेस को सही करने के बाद HttpPostedFileBase को आजमाया गया है लेकिन अब फ़ाइल झूठी वापसी के लिए modelstate.isvalide() का कारण बनती है। –

+0

संदेश = "System.Web.HttpPostedFileWrapper 'टाइप करने के लिए पैरामीटर रूपांतरण' System.Web.HttpPostedFile 'टाइप करने के लिए विफल रहा क्योंकि इन प्रकारों के बीच कोई प्रकार कनवर्टर परिवर्तित नहीं हो सकता है।" –

+1

आखिरकार इसका काम मदद के लिए धन्यवाद "मल्टीपार्ट/फॉर्म-डेटा" में व्हाइटस्पेस समस्या थी और पैरामीटर को एचटीपीपोस्टेडफाइलबेस में बदल दिया गया था और इसकी तरह काम करने की तरह धन्यवाद धन्यवाद @ पीटर चुंबन –

संबंधित मुद्दे