Django web开发获取input属性file,可以用request.FILES.get(' ')直接获取到,然后正常拼接路径就可以下载,

但是今天我们来用异步获取file的值在传输后端下载。

1.这里我们要注意form表单必须添加enctype="multipart/form-data"这个属性,不然后端会取不到值。

2.此处是form表单的所有能用到ajax传输的属性,就因为多了个file属性所以获取方式特殊我们要把点击事件放到表单外,

不然正常js获取是不需要form表单的,这里我们要注意一点,ajax的传输与form表单冲突,如果两个都有就只会走form表单

3.正常如果用id获取file的值,会把整个文件的绝对路径获取到,那样的话传输后端就是整个绝对路径了,显然跟我们需要获取的文件名字不符,

所以我们这回需要form表单,就因为点击的时候获取的是整个form表单的所有内容。

<form id="uploadForm" enctype="multipart/form-data">
{% csrf_token %}
姓名:<input type="text" name="name"><br>
年龄:<input type="text" name="age"><br>
男:<input type="radio" name="gender" value="男">
女:<input type="radio" name="gender" value="女"><br>
手机:<input type="text" name="phone"><br> <select name="hobby">
<option value="篮球">篮球</option>
<option value="羽毛球">羽毛球</option>
<option value="足球">足球</option>
</select><br>
<input type="file" name="file" multiple="multiple"/><br>
</form>
<button id="upload" >上传</button>

点击事件获取整个form表单,如果Django配置里csrf没有注释, 此处要把token加入到formData里面,

formData获取的是整个form表单内容,下面为ajax格式,不会的自己查吧基本格式

<script type="text/javascript" src="../../static/js/jquery-1.12.4.min.js"></script>
<script>
$(function(){
$("#upload").click(
function(){
var csrfToken=document.querySelector("[name='csrfmiddlewaretoken']");
var formData = new FormData($('#uploadForm')[0]) $.ajax({
url:'{% url "stu:entry" %}',
data:formData,
dataType:'json',
type:'POST',
cache: false,
processData: false,
contentType: false,
success:function(resp){
if (resp.code==200){
alert(resp.msg);
location.href = '{% url "stu:index" %}';
}else{
alert(resp.msg);
location.reload()
}
}
})
}
)
})
</script>

最新文章

  1. 坎坷路:ASP.NET Core 1.0 Identity 身份验证(中集)
  2. 【物联网应用与维护】基于SQL sever 2008 R2的数据库定时处理
  3. Leetcode 之Populating Next Right Pointers in Each Node II(51)
  4. 《Dive into Python》Chapter 2 and Chapter 3 笔记
  5. Poj 3239 Solution to the n Queens Puzzle
  6. 关于Java(标识符规则)
  7. 谷歌浏览器javascript调试教程
  8. 总线接口与计算机通信(一)I2C总线
  9. Node入门教程(3)第二章: Node 安装
  10. UVALive - 3942:Remember the Word
  11. 浅析mysql中exists 与 in 的使用
  12. 机器人学 —— 轨迹规划(Artificial Potential)
  13. Codeforces 766C:Mahmoud and a Message(DP)
  14. go下载安装
  15. [WPF]记一个Win8&quot;缩放级别&quot;设置导致的问题
  16. delphi locate函数的使用
  17. 【温故知新】C#基于事件的异步模式(EAP)
  18. java线程(5)——线程池(上)
  19. Uva 12169 不爽的裁判 模运算
  20. Dropout &amp; Maxout

热门文章

  1. 题解 P5065 【[Ynoi2014]不归之人与望眼欲穿的人们】
  2. 【原创】数据库基础之Mysql(2)主从库配置
  3. iOS 推荐几篇关于Objective-c 动态语言的文章
  4. bootstrap轮播图 两侧半透明阴影
  5. Accumulation Degree
  6. windows上下载redis扩展
  7. leetcode目录
  8. Git 头像修改 原
  9. P1341 无序字母对 欧拉回路
  10. Attribute-Recognition行人属性识别资料