繁体   English   中英

如何在 Django 中使用 Ajax 上传图片? Python

[英]How to upload picture using Ajax in Django ? Python

我正在尝试在 Django 中使用 Ajax(使用 FormData)上传个人资料图片。

以下是我在 html 页面中使用的代码,

<img src="/media/{{user_profile.picture}}" width="150" height="150" alt="" id="pro_file"/>
<input id="upload-file" type="file" name="file"/>

在 jQuery (Ajax) 中,

var fd = new FormData();
var vidFileLength = $('#upload-file')[0].files.length;
if(vidFileLength === 0){
    var files = $('#pro_file').attr('src');
}
else{
    var files = $('#upload-file')[0].files[0];
}
fd.append('file',files);

然后我在 Ajax 中发送了fd in data 属性。

但是,在 views.py 以下是我的代码段,

fd = request.FILES
try:
    profile_pic = fd['file']
except KeyError as e:
    profile_pic = request.POST['file']
profile_pic = str(profile_pic).replace("/media/","")

使用这种方法,我的代码可以工作,但我怀疑这是一种正确的方法吗? 请问有什么建议吗?

如果用户已经有图片并且他们没有通过输入选择新图片,是否有理由将 URL 发送回服务器? 如果确实需要,服务器可以从数据库中查找它。 如果这是一个更新的配置文件视图,那么您不需要做任何事情并且可以忽略它不会被发回。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM