2013-12-18 1 views
2

내가 ASP.NET MVC4 파일을 업로드했습니다 잘 작동하지만 한 매개 변수를 전달해야합니다. Folderid 컨트롤러에 있지만 불행히도 나는 컨트롤러에서 folderId 가져올 수 없습니다. 가능한 한 빨리 좀 도와주세요 수Javery mvc4 아약스 함수에 데이터를 전달합니다

아래에 내 코드

$(document).ready(function() { 

     var Folderid = "ab";  

     $('#fileupload').fileupload({ 
      dataType: 'json', 
      url: '/Home/UploadFiles', 
      autoUpload: true, 
      data: { name: Folderid }, 
      done: function (e, data) { 
       if (data.result.name == '') { 
        $('.file_name').html('Please Upload valid image...'); 
        $('.progress .progress-bar').css('width', 0 + '%'); 

       } 
       else { 
        $('.file_name').html("Uploaded Successfully..[ " + data.result.name + " ]"); 
       } 

      } 
     }).on('fileuploadprogressall', function (e, data) { 
      var progress = parseInt(data.loaded/data.total * 100, 10); 
      $('.progress .progress-bar').css('width', progress + '%'); 
     }); 
    }); 

내 컨트롤러 코드

아래
[HttpPost] 
     public ContentResult UploadFiles(string name) 
     { 

      string FolderId = name; 

      var r = new List<UploadFilesResult>();    
      foreach (string file in Request.Files) 
      { 
       var allowedExtensions = new[] { ".jpg", ".jpeg", ".bmp", ".icon" }; 

       HttpPostedFileBase hpf = Request.Files[file] as HttpPostedFileBase; 
       if (hpf.ContentLength == 0) 
        continue; 
       if (!allowedExtensions.Contains(System.IO.Path.GetExtension(hpf.FileName).ToString())) 
       { 
        r.Add(new UploadFilesResult() 
        { 
         Name = "", 
         Length = 0, 
         Type = "" 

        }); 
       } 
       else 
       { 
        string savedFileName = Path.Combine(Server.MapPath("~/Upload"), Path.GetFileName(hpf.FileName)); 
        hpf.SaveAs(savedFileName); 
        r.Add(new UploadFilesResult() 
        { 
         Name = hpf.FileName, 
         Length = hpf.ContentLength, 
         Type = hpf.ContentType 
        }); 
       } 
      } 
      return Content("{\"name\":\"" + r[0].Name + "\",\"type\":\"" + r[0].Type + "\",\"size\":\"" + string.Format("{0} bytes", r[0].Length) + "\"}", "application/json"); 
     } 
+0

발견 : 어떤 용도로 사용되었을 수 있습니다. http://stackoverflow.com/questions/17934689/can-someone-explain-how-to-implement-the-jquery-file-upload-plugin 또한, 내가 사용하고있는 라이브러리에 대해 언급하고 싶습니다. fileUpload는 jQuery 함수가 아닙니다. – Swires

+0

@Swires, 내 worng .. pls 지정해 주시겠습니까 – Sajith

+1

가능한 수정에 대한 답변을 참조하십시오,하지만 그 fileUpload 별도의 라이브러리입니다 의미 https://github.com/blueimp/jQuery-File-Upload/wiki/How 제출 양식을 추가 제출해야하며 질문에서 언급해야합니다. 내가 처음 읽을 때 '나는 jQuery가 파일 업로드를 처리하는 것을 모른다고 생각했다.' – Swires

답변

1

편집 아마도 지금처럼 파일 업로드 호출에 formData에 데이터를 변경해보십시오 :

formData: { name: Folderid }, 

취지 here.

+0

나는이 같은 컨트롤러를 사용하려고했지만 'Request.Form [ "name"]'에 Null 참조 오류가 있습니다. – Sajith

+0

이것이 작동합니까? 그렇다면 대답으로 표시하십시오. – Swires

+0

이 문자열이 작동하지 않습니다. FolderId = Request.Form [ "name"]. 당신은 링크가 당신이이 링크 github.com/blueimp/jQuery-File-Upload/wiki/...을 언급 한 것처럼 작동한다고 주석을 달았습니다. 만약 당신이 대답을 편집한다면이 링크로 답을 할 것입니다. – Sajith

관련 문제