2013-01-01 12 views
6

Şu anda asp.net mvc 4 kullanıyorum ve şu şekilde başlatıyorsam, görüntüleri yüklemek için jquery-file-upload kullanıyorum:asp.net mvc 4 ile jQuery dosyası yükleme Request.Files.Count her zaman 0

 $('#fileupload').fileupload(); 

     $('#fileupload').fileupload('option', { 
      //url: '/Admin/News/Create', 
      maxFileSize: 500000000, 
      acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i, 
      maxNumberOfFiles: 1, 
      resizeMaxWidth: 1920, 
      resizeMaxHeight: 1200, 
     }); 

Bir görüntü dosyası seçildiğinde, resim borç yazıcısında önizleme yapabilir, ancak mvc Action Request.Files.Count öğesinde 0, bu da hiçbir dosya yüklenmediği anlamına gelir. Ve ben böyle başlatmak eğer:

 //$('#fileupload').fileupload(); 

     $('#fileupload').fileupload('option', { 
      //url: '/Admin/News/Create', 
      maxFileSize: 500000000, 
      acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i, 
      maxNumberOfFiles: 1, 
      resizeMaxWidth: 1920, 
      resizeMaxHeight: 1200, 
     }); 

i görüntüyü önizleme olamaz, ama mvc Eylem dosyasını almak, herkes niye biliyor? denetleyicisi için Posta Kodu:

[HttpPost] 
    [ValidateInput(false)] 
    public ActionResult Create(NewsViewModel model, FormCollection form) 
    { 
     if (ModelState.IsValid) 
     { 
      //.... 

      // upload image 
      foreach (string file in Request.Files) 
      { 
       HttpPostedFileBase hpf = Request.Files[file] as HttpPostedFileBase; 
       if (hpf.ContentLength == 0) 
        continue; 
       string path = Path.Combine(Server.MapPath("~/Uploads/News/"),GUID.NewGuid()+ Path.GetExtension(hpf.FileName)); 
       hpf.SaveAs(path); 

       data.ImagePath = path; 
       _iNewsService.UpdateNews(data); 
      } 
     }   
    } 
+0

Neden 'url:'/Yönetici/Haberler/Oluştur ',' satırı açıklandı? – Omar

+0

coz Otomatik yüklemeyi istemiyorum, ve ben çok yazılan görünümü kullanıyorum, formun aksiyonu var –

+0

@ Behnam Esmaili atama soru –

cevap

0

i aynı problem vardı aşağıdaki ile çözüldü: Bu yardımcı olabilecek

[HttpPost] 
    [ValidateInput(false)] 
    public ActionResult Create(NewsViewModel model, FormCollection form) 
    {     
      var length = Request.ContentLength; 
      var bytes = new byte[length]; 
      Request.InputStream.Read(bytes, 0, length); 

      //or for creating image from stream 

      Bitmap bmp = new Bitmap(Bitmap.FromStream(InputStream)); 
      bmp.Save("some path"); 

    } 

umudu.

+0

Bitmap bmp = yeni Bitmap (Bitmap.FromStream (InputStream)); Ben Bitmap yerine Image kullanmak gibi diğer bazı yolları denedim, bu satır her zaman istisna çarptı 'Parametre geçerli değil' –

+0

İstekte bulundu.InputStream null mı? –

+0

bayt, bayt değerine sahipse –