2013-12-20 40 views
4

的文件数据传送我从我们的Django的后端家伙与文档的端点,上面写着:多/ FORMDATA不与jQuery.ajax

POST到/ API/1 /照片上传/与ENCTYPE =” multipart/form-data“,文件名为”files []“。

我一直在尝试使用jQuery的AJAX方法发送带有formData的上传文件。我继续得到一个错误,指出文件没有被发送。当我查看我看到的有效载荷时。

undefined 
------WebKitFormBoundary9AzM2HQPcyWLAgyR 
Content-Disposition: form-data; name="file"; filename="auzLyrW.jpg" 
Content-Type: image/jpeg 

这并不一定意味着它没有发送,但肯定没有发布位置。而且我没有任何验证文件是否已上传。

var formData = new FormData(); 
    formData.append('file', $('#file-upload').get(0).files[0]); 
    $.ajax({ 
     url: '/api/1/photo-uploads/', 
     type: 'POST', 
     data: formData, 
     cache: false, 
     contentType: false, 
     processData: false, 
    }); 

当我CONSOLE.LOG formData它只是显示它的原形方法,如.append。所以我无法验证文件的数据是否被发送超过检查有效载荷。我可以登录$('#file-upload').get(0).files[0],但我只能看到文件本身的细节。因为我在本地测试它,所以上传位置应该是localhost:8000 /。

后端家伙的印象是这是我正在做的事情。当我做一个简单的表单发布它工作正常。我已经尝试了一些插件和基本方法,并且都生产了400 {"message": "No photos supplied.", "success": false}

任何想法,将不胜感激。

+1

你有没有看着http://stackoverflow.com/questions/9622901/how-to-upload-a-file-using-jquery-ajax-and-formdata和http://计算器。 com/questions/166221/how-can-i-upload-files-asynchronously -with-jquery – Rohan

+0

@Rohan是的我上面的代码是这两个答案的混合物。除非我错过了什么。 –

+0

我也想提出这个有据可查的问题。它没有解决我的问题,但它做得很好http://stackoverflow.com/questions/6974684/how-to-send-formdata-objects-with-ajax-requests-in-jquery –

回答

6

该文档要求将其命名为files[]。发送的内容是file

formData.append('files[]', $('#file-upload').get(0).files[0]);