由blueimp进行的jQuery-File-Upload - 附加标题

时间:2012-04-04 13:12:20

标签: php jquery file-upload blueimp

我搜索了wiki,但找不到答案我应该在JS脚本中添加其他标题(例如Authorization标题)?某处onSend / beforeSend或?

小工具链接: https://github.com/blueimp/jQuery-File-Upload

5 个答案:

答案 0 :(得分:27)

这就是我将文件名添加为标题的方式:

$('#upload_btn').fileupload({
    singleFileUploads: true,
    beforeSend: function(xhr, data) {
        var file = data.files[0];
        xhr.setRequestHeader('X-FileName', file.name);
    },
});

答案 1 :(得分:12)

您是否尝试通过“options.headers”对象设置其他标头?

如果使用 forceIframeTransport:true 选项(IE不支持XHR文件上传,则需要使用隐藏的iframe方法),然后修改标头不是一个选项:https://github.com/blueimp/jQuery-File-Upload/issues/654

Options.headers:http://api.jquery.com/jQuery.ajax/

  

为文件上载插件设置的选项将传递给jQuery.ajax(),并允许定义任何ajax设置或回调。

答案 2 :(得分:8)

尝试这样的事情......

beforeSend: function(xhr) {
    xhr.setRequestHeader("Accept", "application/json");
    xhr.setRequestHeader("Content-type", "application/json; charset=utf-8");
}

答案 3 :(得分:2)

答案很简单: 只需在添加部分

中添加自定义标题即可
  add: function (e, data) {         

                data.headers={'X-Session-Id' : data.files[0].name.hashCode()};

                data.context = $('<button/>').text('Upload')
                .appendTo(document.body)

                .click(function () {
                    data.context = $('<p/>').text('Uploading...').replaceAll($(this));

                   // naam = naam.hashCode();
                    data.submit();
                });
        },

或在初始化中:

$('#fileupload').fileupload({
        dataType: 'json',
        multipart : false,
        maxChunkSize: 10 * 1024 * 1024,
        headers:data.headers={'X-Session-Id' : "TEST-HEADER"},

答案 4 :(得分:1)

这是我的实施

onSend: function(e, options) {
  var accessToken = ...;

  options.headers = {
    'Authorization': 'Bearer ' + accessToken
  };
},