gpt4 book ai didi

Javascript Ajax 上传文件到 Python 后端

转载 作者:行者123 更新时间:2023-11-30 06:14:39 25 4
gpt4 key购买 nike

我不知道如何让我的代码工作,我正在尝试使用 javascript 将文件上传到我的 python 代码。

这是我的 HTML

<div class="form-group">
<label for="upload_list" class="control-label">Upload List</label>
<input name="upload_list" id="upload_list" type="file" class="form-control" multiple="true" />
</div>

<a id="make_order" role="button" class="btn btn-primary" href="#">

这里是我处理上传的 JS。

$("a#make_rfq_order").bind("click", function(ev) {
var customer_upload_list = $('#upload_list').val();

ajax.jsonRpc('/shop/order', 'call', {
'upload_list': customer_upload_list
});
});

这是我的 python 代码

def customer_order(self, **post):
if post.get('upload_list'):
.....
if order and order.id:
.....
if post.get('upload_list'):
.....
values.update({
'name': '{0}_{1}'.format('file', upload_list.filename),
})

order.write(values)

return True

如果我使用 'name': '{0}_{1}'.format('file', upload_list), 它的工作,但只处理文件名,

如何将实际文件提交到我的服务器?...

最佳答案

我无法发表评论,所以我会尽我所能回答,但了解更多关于您的 python 服务器的信息会有所帮助(您是使用特定框架还是从头开始编写自己的 python 服务器等...)

我认为您发送的是文件路径,而不是文件本身:

    var customer_upload_list = $('#upload_list').val();

试试下面的方法:

    var file = $('#upload_list').get(0).files[0];

此外,您似乎正在尝试包含对多个文件的支持。您是否尝试过通过遍历所选文件并将 FormData 添加到 POST 来构建 FormData?

这样的事情可能会奏效,或者至少让你朝着正确的方向前进:

    var files = new FormData();
for(var i=0;i< $('#upload_list').val().length;i++){
var file = $('#upload_list').get(0).files[i];
files.append('files[]', file);
}

$.ajax({
url: 'upload.php',
type: 'POST',
data: files
});

服务器端接收到的数据会是列表形式,所以记得修改代码寻找列表。

您可能需要在 POST 中尝试其他参数,例如 contentType 和 dataType 或 processData,但我认为以上内容足以获得结果

关于Javascript Ajax 上传文件到 Python 后端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56880331/

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