gpt4 book ai didi

javascript - AJAX DJango 从多个文件字段中获取文件

转载 作者:行者123 更新时间:2023-11-28 22:20:37 25 4
gpt4 key购买 nike

我在使用 AJAX 和 DJango 上传多个文件时遇到问题。如何从字段输入中获取文件并将它们推送到 data ?HTML:

<form id="add_photos" method="post" action="" enctype="multipart/form-data">

{% csrf_token %}
<input type="file" name="file[]" multiple id="files">

<input type="submit" name="submit" value="Submit" />

</form>

JS:

function formSubmit(e) {
e.preventDefault();

$.ajax({
method: 'POST',
data: form.serialize(),
url: '.',
success: function(data) {
console.log(data);
},
error: function (data) {
console.log(data);
}
});
}

最佳答案

请参阅下面使用 FormData 的示例。但请注意,它可能无法在旧的 IE 浏览器上运行(我认为 8、9 将无法运行)。

<input type="file" id="upload_file" data-import-url="{% url 'upload_file' %}" data-csrf-token="{{ csrf_token }}" multiple>

然后是 jQuery:

$("#upload_file").change(function () {

var url = $(this).attr("data-import-url")
var data = new FormData();
$.each($("#upload_file")[0].files, function(i, file) {
data.append("file", file);
});
data.append("csrfmiddlewaretoken", $(this).attr("data-csrf-token"));

$.ajax({
url: url,
data: data,
cache: false,
contentType: false,
processData: false,
type: 'post',
beforeSend: function () {
// before send, display loading, etc...
},
success: function (data) {
// success handling...
},
error: function () {
// error handling...
}
});

});

在你看来你可以这样得到它:

uploaded_files = request.FILES.getlist('file')

如果您需要支持旧版浏览器,jQuery File Upload是一个非常好的图书馆。我写了一篇关于 multiple files upload using Django + Ajax 的教程(使用这个特定的库)。

关于javascript - AJAX DJango 从多个文件字段中获取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48829089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com