2016-12-30 4 views
0

私は応募者のためのジョブアプリケーションのフォームを持っています。フォームでは、人々は自分のCVとカバーレターをアップロードすることもできます。Dropzone JsのすべてのアップロードIDを配列またはJSONのセットで取得します。

私はDropzoneを使って複数のファイル(CVとカバーレター)をアップロードします。そして、配列やjsonにアップロードされたIDのセットを取得したい。私はここで仕事のアプリケーションフォームを

var idResult = ""; 
    Dropzone.options.uploadDemo = { 
     maxFilesize: 5, //accept file size 5MB 
     paramName: "file", // The name that will be used to transfer the file 
     acceptedFiles: ".pdf,.doc,.docx,.docm,.docb,.dotx,.dotm", //acccept file extension 
     addRemoveLinks: true, 
     init: function() { 
      this.on("success", function (data) { 
       console.log(data); 
       console.log(data.xhr.response); 
       $('#@Html.IdFor(x=>x.Applicant.UploadIds)').val(data.UploadIds); 
      }); 

を関係を作成するためにそれを使用できるように、私のコントローラである

[HttpPost] 
    [Route("Career/SaveUploadedFile")] 
    public ActionResult SaveUploadedFile() 
    { 
     try 
     { 
      string uploadId = string.Empty; 
      foreach (string fileName in Request.Files) 
      { 
       HttpPostedFileBase file = Request.Files[fileName]; 
       //Save file content goes here 

       if (file != null && file.ContentLength > 0) 

       { 

        var originalDirectory = new DirectoryInfo(string.Format("{0}Upload\\Document", Server.MapPath(@"\"))); 

        string pathString = System.IO.Path.Combine(originalDirectory.ToString(), "file"); 

        var fileName1 = Path.GetFileName(file.FileName); 

        bool isExists = System.IO.Directory.Exists(pathString); 

        if (!isExists) 
         System.IO.Directory.CreateDirectory(pathString); 

        var path = string.Format("{0}\\{1}", pathString, file.FileName); 

        file.SaveAs(path); 


        var upload = TTCHRFacade.CreateUpload(new Upload() 
        { 
         FileName = file.FileName, 
         FileSize = file.ContentLength, 
         FileExtention = file.ContentType, 
         GUIDFileName = Guid.NewGuid().ToString(), 
         UploadDate = DateTime.Now 
        }); 
        uploadId += upload.UploadId.ToString() + ","; 
        //return PartialView("ApplicantUploadTemplate", upload); 
       } 
       else 
       { 
        // Set as bad request (400) 
        Response.StatusCode = (int)System.Net.HttpStatusCode.BadRequest; 
        ModelState.AddModelError("error", "Need Files."); 
        return Json(ModelState.Values.FirstOrDefault().Errors.FirstOrDefault().ErrorMessage); 
       } 
      } 
      return Json(new { uploadId }, JsonRequestBehavior.AllowGet); //TODO 

     } 
     catch (Exception ex) 
     { 
      // Set as bad request (400) 
      Response.StatusCode = (int)System.Net.HttpStatusCode.BadRequest; 
      return Json(ModelState.Values.FirstOrDefault().Errors.FirstOrDefault().ErrorMessage); 
     } 
    } 

注:アプリケーションフォームとフォームをアップロード同じビューに

感謝していますあなたは事前に。代わりに、単一のIDの

+0

'data.uploadId'を同上の

var uploadIds = new List<string>(); foreach (string fileName in Request.Files) { // Your existing code goes here var uploadId = upload.UploadId.ToString(); uploadIds.Add(uploadId); } //Now return the list of Ids return Json(uploadIds, JsonRequestBehavior.AllowGet); 

のコレクションを返す必要がありますすべきあなたに新しいIDを教えてください。 – Shyju

+0

ええ。しかし、それはidの配列のセットではありません。 –

+0

IDの配列を返すことができます。投稿された回答を参照してください。 – Shyju

答えて

0

は、あなたのAJAXメソッドの成功コールに渡されるデータにはこれは、IDの配列を返します

+0

動作しているようです。ただし、ビューページで結果を返すことができません。 :3 –

+0

ここで、結果をビューページに戻したいですか?何が結果? – Shyju

関連する問題