2015-11-03 110 views
1

我正在使用良好的上传器在服务器上上传文件,为此我需要进行2个网页API调用。如何在运行时添加标头上传文件

按钮单击,第一个web api保存值并返回整数结果,并且我需要在上传时为每个文件传递该整数结果的头文件。 但我不能够通过在报头值,

代码,

uploader = new qq.FineUploader({ 
     element: $('#manual-fine-uploader1')[0], 
     request: { 
      endpoint: Url.AddEvaluationFiles, 
     }, 
     autoUpload: false, 
     text: { 
      uploadButton: '<i class="icon-plus icon-white"></i> Select Files' 
     }, 
     debug: true, 
     callbacks: { 
      onSubmit: function (id, fileName) { 

      }, 
      onStatusChange: function (id, oldStatus, newStatus) { 
       if (newStatus == "uploading") { 
        alert("Add header"); 
       } 
      }, 
      onUpload: function (id, name) { 
       alert("Onupload"); 
       this.append("RequestId", $("#ReqId").val()); 
      } 
     } 
    }); 

我打电话第一个请求的成功块上传功能,

$.ajax({ 
      type: "POST", 
      url: Url.Details, 
      data: fileData, 
      async: false, 
      success: function (result) { 
       if (result == 0) { 
        toastr.error("Please pass user id"); 
       } else { 
        $("#ReqId").val(result); 
        alert($("#ReqId").val()); 

        uploader.uploadStoredFiles(); 

       } 
      }, 
      error: function (err) { 
       toastr.error("Not able to upload art details"); 
      } 
     }); 

在这里,我想传递的requestId在onUpload事件头,但它不工作,我需要做出什么改变,使之发生。

回答

1

request选项有一个customHeaders属性,它允许您设置任何自定义标题。

你的构造函数调用应该是这个样子

artistmanualuploader = new qq.FineUploader({ 
    ... 
    request: { 
     endpoint: "FoaUrl.AddEvaluationFiles", 
     customHeaders: { 
      "EvaluationRequestId": $("#CurrentEvaluationReqId").val() 
     } 
    }, 
    ... 
}); 
+0

它不采取新的价值,我在文本框与$(“#CurrentEvaluationReqId”)树立了新的价值。VAL(结果);,但仍然是采取老一。 –

+1

这是因为您创建artistmanualuploader的时间太早(在Ajax调用的* success()*之前),当旧值仍在文本框中时。您需要在success()回调中创建它。此外,你需要开始一个新的问题,因为你有关自定义标题的原始问题已被回答(或者我相信)。 :-) –

+0

我必须先创建artistmanualuploader才能拨打任何电话,因为只有一个按钮可以上传图片和详细信息,所以,首先我要上传详细信息,并获取ID作为回应,我需要在第二个电话中传递图片。这就是我将问题写成“动态标题”不是静态的原因。 –