使用Blobstore Python API和Ajax

3 投票
2 回答
1391 浏览
提问于 2025-04-16 00:35

有没有什么例子可以展示如何用blobstore API和ajax一起使用?

我用表单的时候一切都很好,但如果我用jquery,我不知道怎么发送文件,所以出现了这个错误:

    blob_info = upload_files[0]
    IndexError: list index out of range

我在javascript中有这段代码

function TestAjax()
{
 var nombre="Some random name";
 ajax={
    type: "POST",
    async:true,
    //dataType:"json",
    url:"{{upload_url}}",
    data:"nombreEstudio="+nombre,   
    error: function ()
    {
        alert("Some error");
        $("#buscando").html("");
    },            
    success: function()
             { alert("it's ok") }
 };             
 $.ajax(ajax);
}

当我使用表单时,文件是通过一个输入标签发送的(就像文档中的示例一样)

2 个回答

2

你还是需要把多部分表单数据请求发送到服务器……所以当你使用表单时,我想你的 <form> 标签上应该有类似这样的内容:enctype="multipart/form-data",对吧?

如果你只是通过ajax发送一个“POST”请求,你就失去了那个多部分请求,而文件就在里面。

网上有一些jQuery的“ajax文件上传”插件,可能会对你有帮助。

希望这能帮到你!

** 编辑 **

我想我可以补充一点,通常在客户端进行ajax文件上传时,有两种实现方式:一种是创建一个隐藏的iframe,然后用这个iframe来提交表单;另一种是使用表单,通过JavaScript来发送。

4

我写了一系列关于这个主题的文章,你可以在这里找到它们:第一部分第二部分第三部分

撰写回答