Javascript-Ajax上传文件到Python后端

Javascript-Ajax上传文件到Python后端,javascript,python,Javascript,Python,我被困在如何使我的代码工作,我试图上传文件使用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"

我被困在如何使我的代码工作,我试图上传文件使用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="#">
这里是我的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}'。格式化('file',upload_list),
它的工作,但只处理文件名


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

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

我认为您发送的是文件的路径,而不是带有此部分的文件本身:

    var customer_upload_list = $('#upload_list').val();
请尝试以下方法:

    var file = $('#upload_list').get(0).files[0];
另外,看起来您正在尝试包括对多个文件的支持。 您是否尝试过通过迭代选定的文件并将FormData添加到帖子中来构建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
    });
var files=new FormData();
对于(var i=0;i<$(“#上传_列表”).val().length;i++){
var file=$(“#上传_列表”).get(0).files[i];
files.append('files[],file);
}
$.ajax({
url:'upload.php',
键入:“POST”,
数据:文件
});
接收到的数据将在服务器端以列表形式显示,因此请记住更改代码以查找列表

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

    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
    });