如何发送块文件上传的自定义属性
How to send custom attribute for chunk file upload
我正在使用 blueimp
文件上传插件,但我不使用多个 files
,但我不知道如何发送自定义属性。我想将所有这些自定义属性发送到 服务器 ,每个 chunk
没问题(我们如何发送 formData
)。我们如何发送formData
类似的,我可以发送属性吗?
var formdata = new formData();
formdata.append('filename',currentFile[i]);
formdata.append('filesize',currentFile[i].size);
注意:我想在chunks
中发送数据
这是我正在尝试的代码 jsfiddle(在 firefox 中完美打开):http://jsfiddle.net/davidchase03/ChJ9B/
HTML
<input id="fileupload" type="file" name="files[]" multiple>
<div class="progress">
<div class="meter" style="width: 0%;"></div>
</div>
<div class="data"></div>
JavaScript
$(function () {
$('#fileupload').fileupload({
url: '/echo/json/',
maxChunkSize: 1048576,
maxRetries: 3,
dataType: 'json',
multipart: false,
progressall: function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10),
meter = $('.progress .meter'),
percent = progress + '%';
meter.css('width', percent).text(percent);
},
add: function (e, data) {
data.context = $('<p/>').text('Uploading...').appendTo('.data');
data.submit();
},
done: function (e, data) {
data.context.text('Upload finished.');
},
fail: function (e, data) {
data.context.text('Upload failed.');
$('.progress').addClass('alert');
console.warn('Error: ', data);
}
}).on('fileuploadchunksend', function (e, data) {
// if (data.uploadedBytes === 3145728 ) return false;
}).on('fileuploadchunkdone', function (e, data) {
});
});
问题:让你明白这就是我想要的How to send custom data to server using jquery-file-uploader
请帮我提前谢谢!!!
您可以使用 headers
选项添加任何自定义信息
maxRetries: 3,
headers: {
'myname': 'Tarun'
},
dataType: 'json',
然后你可以看到 headers 与每个块一起发送
区块 1
区块 2
然后在服务器上您可以提取这些信息并以您喜欢的方式使用它
您可以使用 headers 选项发送额外的自定义属性。
示例:
$(function () {
$('#fileupload').fileupload({
url: '/echo/json/',
...
headers : {
customAttribute: 'customValue'
}
});
对于动态值,您可以使用 beforeSend 回调,如以下示例所述
$(function () {
$('#fileupload').fileupload({
url: '/echo/json/',
...
beforeSend : function(xhr) {
xhr.setRequestHeader("customAttribute", someCalculateValueFunction('customValue'));
}
});
$('#fileupload').fileupload({
formData: {customAttr: 'value'}
});
我正在使用 blueimp
文件上传插件,但我不使用多个 files
,但我不知道如何发送自定义属性。我想将所有这些自定义属性发送到 服务器 ,每个 chunk
没问题(我们如何发送 formData
)。我们如何发送formData
类似的,我可以发送属性吗?
var formdata = new formData();
formdata.append('filename',currentFile[i]);
formdata.append('filesize',currentFile[i].size);
注意:我想在chunks
这是我正在尝试的代码 jsfiddle(在 firefox 中完美打开):http://jsfiddle.net/davidchase03/ChJ9B/
HTML
<input id="fileupload" type="file" name="files[]" multiple>
<div class="progress">
<div class="meter" style="width: 0%;"></div>
</div>
<div class="data"></div>
JavaScript
$(function () {
$('#fileupload').fileupload({
url: '/echo/json/',
maxChunkSize: 1048576,
maxRetries: 3,
dataType: 'json',
multipart: false,
progressall: function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10),
meter = $('.progress .meter'),
percent = progress + '%';
meter.css('width', percent).text(percent);
},
add: function (e, data) {
data.context = $('<p/>').text('Uploading...').appendTo('.data');
data.submit();
},
done: function (e, data) {
data.context.text('Upload finished.');
},
fail: function (e, data) {
data.context.text('Upload failed.');
$('.progress').addClass('alert');
console.warn('Error: ', data);
}
}).on('fileuploadchunksend', function (e, data) {
// if (data.uploadedBytes === 3145728 ) return false;
}).on('fileuploadchunkdone', function (e, data) {
});
});
问题:让你明白这就是我想要的How to send custom data to server using jquery-file-uploader
请帮我提前谢谢!!!
您可以使用 headers
选项添加任何自定义信息
maxRetries: 3,
headers: {
'myname': 'Tarun'
},
dataType: 'json',
然后你可以看到 headers 与每个块一起发送
区块 1
区块 2
然后在服务器上您可以提取这些信息并以您喜欢的方式使用它
您可以使用 headers 选项发送额外的自定义属性。 示例:
$(function () {
$('#fileupload').fileupload({
url: '/echo/json/',
...
headers : {
customAttribute: 'customValue'
}
});
对于动态值,您可以使用 beforeSend 回调,如以下示例所述
$(function () {
$('#fileupload').fileupload({
url: '/echo/json/',
...
beforeSend : function(xhr) {
xhr.setRequestHeader("customAttribute", someCalculateValueFunction('customValue'));
}
});
$('#fileupload').fileupload({
formData: {customAttr: 'value'}
});