Django文件上传

  
  

本篇主要讲的是ajax下的文件上传

     

模板html文件内容

  
 <代码类=" language-html "> & lt;形式id=癴ileUploadForm”比;
  & lt;输入类型="文件" name="文件" id=癴ile_input”比;
  & lt;/form>  
  

编写文件上传js

  
 <代码类=" language-js ">功能上传(){//ajax上传文件
  var file_input=$ (' # file_input ');
  如果(file_input.val ()==? {
  返回错误;
  }
  var formData=https://www.yisu.com/zixun/new formData ($ (“# fileupload_form”) [0]);
  . ajax({美元
  类型:“文章”,
  url:/api/类/,
  数据:formData,
  数据类型:json,
  contentType:假的,
  processData:假的,
  成功:功能(数据){
  如果(data.info) {
  console.log(“文件上传成功!”);
  返回;
  其他}{
  console.log(“文件上传失败!”);
  返回错误;
  }
  },
  错误:函数(){
  console.log(“文件上传失败!”);
  返回错误;
  }
  });
  } 
  

<>强服务器端视图代码如下

  
 <代码类="语言python ">类FileUpload(观点):
  “‘
  文件上传
  “‘
  def post(自我,请求):
  试一试:
  文件=request.FILES.get(“文件”)
  如果文件。大小祝辞=2097152):
  #当上传文件大于2米时抛出异常
  提高RuntimeError (“fileSizeError”)
  除了例外错误:
  打印(错误) 
  

文章提交过来的文件需要使用<强> request.FILES.get() 去获取,而不能直接使用request.POST.get ()

  

<强> 非ajax文件上传
需要为形式表单添加enctype属性,其值必须为<强>多部分/格式强,请求方式依然为文章

  
 <代码类=" language-html "> & lt;形式id=癴ileUploadForm”enctype=岸嗖糠?格式”方法=癙OST”比;
  & lt;输入类型="文件" name="文件" id=癴ile_input”比;
  & lt;输入类型="提交" value=" https://www.yisu.com/zixun/提交”比;
  & lt;/form>  

Django文件上传