不学网

 找回密码
 立即注册

只需一步,快速开始

手机号码,快捷登录

查看: 186|回复: 0

[python] Ajax上传图片到Django后台

[复制链接]
jasonlv 发表于 2018-4-14 18:56:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
重点:

    HTML:formdata.append("avatar",$("#avatar")[0].files[0]); 找到图片数据


1、前端HTML代码如下:
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <title>上传图片</title>
  6. </head>
  7. <body>
  8. <form>
  9.     {% csrf_token %}
  10.     <div>
  11.         <input type="file" id="avatar">
  12.     </div>
  13.     <input id="btn-submit" type="button" value="提交">
  14. </form>
  15. <script src="/static/jquery-3.2.1.min.js"></script>
  16. <script>
  17. $("#btn-submit").click(function(){
  18.     var formdata = new FormData();
  19.     formdata.append("csrfmiddlewaretoken",$("[name='csrfmiddlewaretoken']").val());
  20.     formdata.append("avatar",$("#avatar")[0].files[0]);

  21.     $.ajax({
  22.         url:"",
  23.         type:"post",
  24.         processData:false,  // 注意false 不能引号包住
  25.         contentType:false,
  26.         data:formdata,
  27.         success:function(data){
  28.             console.log(data)
  29.         }
  30.     })
  31. })
  32. </script>
  33. </body>
  34. </html>
复制代码

2、后端Django代码如下:
  1. def uploadimg(request):
  2.     if request.method == "POST":
  3.         file_obj = request.FILES.get("avatar")  # 取出图片文件对象
  4.         with open(file_obj.name,"wb") as f1:    #打开文件
  5.             for line in file_obj:   # 循环avatar图片的文件句柄,取出每行内容
  6.                 f1.write(line)  #写入新建的文件中
  7.         return HttpResponse("ok")
  8.     return render(request,"uploadimg.html")
复制代码

原文地址:http://www.jasonlv.cc

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|不学网

GMT+8, 2018-7-23 08:06

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表