【发布时间】:2015-12-23 12:52:02
【问题描述】:
我正在开发一个应用程序,我希望能够将照片上传到后端(restframework + django)。
对于后端,我关注了tutorial。 当我使用:
curl --verbose --header "Authorization: token {TOKEN}" --header "Accept: application/json; indent=4" --request POST --form photo=@/home/.../uyuni.jpg {DOMAIN}/api/users/1/photo/
这很好用,文件真的被创建了,之后我可以使用 ng-src 检索它。
然后,我想连接前端来上传照片。
在这里,我尝试了很多来自论坛或 tutos 的想法,例如 one
我有两个不同的问题。
如果我复制最后一个 tuto,我最终会收到 400 Bad Request: 错误分析 XML : aucun élément trouvé 安置 : moz-nullprincipal:{1b4583fc...} Numéro de ligne 1, Colonne 1 : 我不知道它是来自后端还是 Mozilla。我阅读了有关 CORS 问题的信息,但这应该不是问题,因为我使用了离子代理。
如果我使用 cordova-plugin-camera 进行连接,我会返回一个 URL (file:///home/.../example.jpg),我不知道如何将其连接到 FormData用于 POST 到后端:
var updateUserPhoto = function (userId, photoURI) {
if (!photoURI) {return}
var fd = new FormData();
fd.append('photo', photoURI);
return $http.post(API_URL + "users/"+userId+"/photo/", fd, {
transformRequest: angular.identity,
headers: {AUTHORIZATION: "Token "+window.localStorage['apiToken'], 'CONTENT-TYPE': undefined}
});
};
我试图在 fd 中附加一个对象,例如 {path: photoURI, name: 'blablabla'}
在这个问题中,我最终遇到了一个 Django 错误:
AttributeError at /api/users/1/photo/ 'str' object has no attribute 'name'
我可能没那么远,所以我宁愿不使用外部sn-ps。
【问题讨论】:
标签: javascript python angularjs django