利用ajax与input 上传与下载文件
html 部分代码
<form action="" method="" class="form form-horizontal" novalidate>
<div class="form-group">
<label for="avatar" class="text-center" id="route">
点此选择文件<span id="files"></span>
</label>
<div class="">
<input type="file" id="avatar">
</div>
</div>
<div class="form-group">
<input type="button" class="btn btn-primary" id="upload_btn" value="上传文件">
</div>
</form>
script 脚本 <script>
// 选择文件 change: 发生改变并失去焦点之后 这段代码似乎没啥用,但在上传图片文件时就用到了
$('#avatar').change(function () {
{#将js转化为jq#}
file = this.files[0];
{#console.log(file);#}
// 将file解析为blob
reader = new FileReader();
reader.readAsText(file); //读取文本内容
reader.readAsDataURL(file); //上传图片, 然后在下面利用attr,将src的值变为reader.result
reader.onload = function () { $('#files').text(reader.result);
console.log($('#files').text(reader.result));
}
}); $('#upload_btn').click(function () {
token = $('[name = csrfmiddlewaretoken]').val();
{#console.log($('#avatar')[0].files[0].name); {# 文件名 # }#}
{#console.log($('#avatar')[0].files[0].size); {# 文件大小 # }#}
{#console.log($('#avatar').val()); {# 文件路径 # }#}
key_value = $('.form').serializeArray();
form_data = new FormData();
avatar = $('#avatar')[0].files[0];
console.log(avatar);
if(avatar){
form_data.append('avatar', avatar)
}
form_data.append('csrfmiddlewaretoken', token);
form_data.append('filename', avatar.name);
form_data.append('filesize', avatar.size);
$.ajax({
url: '/upload/',
type: 'post',
data: form_data,
contentType: false,
processData: false,
success: function (data) {
if (data.state == 0) {
location.reload()
}
}
})
})
</script> <script>
function download_action(data, id) {
$('#myModal').modal('show');
$('#download-sure').click(function () {
{#let id = id;#}
let url = data;
$.ajax({
url: '/' + url + '/' + id + '/',
type: 'get',
success: function (data) {
location.reload();
{# 刷新页面 #}
}
})
$('#myModal').modal('hide');
})
}
</script>
后台 要使用 request.FILES 来获取文件内容
avatar = request.FILES.get('avatar', None)
利用ajax与input 上传与下载文件的更多相关文章
- winform 利用Http向服务器上传与下载文件
利用在服务器端的IIS,布置“请求处理映射”.从而处理,本地发出Post请求.Url指向web网站所在路径的请求映射.由映射代码实现服务器保存文件. winform里面使用,WebClient的对象, ...
- 利用SecureCRT上传、下载文件(使用sz与rz命令),超实用!
利用SecureCRT上传.下载文件(使用sz与rz命令),超实用! 文章来源:http://blog.csdn.net/dongqinliuzi/article/details/39623169 借 ...
- ajax无刷新上传和下载
关于ajax无刷新上传和下载 这是一个没什么含量但是又用的比较多又不得不说的问题,其实真的不想说,因为没什么好说的. 关于上传 1.使用Flash,ActiveX 上传 ,略... 2.自己写XMLH ...
- ftp上传或下载文件工具类
FtpTransferUtil.java工具类,向ftp上传或下载文件: package utils; import java.io.File; import java.io.FileOutputSt ...
- SecureCRT上传和下载文件
SecureCRT上传和下载文件(下载默认目录) SecureCR 下的文件传输协议有ASCII .Xmodem .Ymodem .Zmodem ASCII:这是最快的传输协议,但只能传送文本文件. ...
- 11、只允许在主目录下上传和下载文件,不允许用putty登录
创建用户xiao, 使其只允许在用户主目录 (/var/www/html)下上传和下载文件,不允许用putty登录 (为了安全起见,不给过多的权限) 1.创建xiao用户 [root@localh ...
- 每天一个linux命令(26):用SecureCRT来上传和下载文件
用SSH管理linux服务器时经常需要远程与本地之间交互文件.而直接用SecureCRT自带的上传下载功能无疑是最方便的,SecureCRT下的文件传输协议有ASCII.Xmodem.Zmodem. ...
- Linux--用SecureCRT来上传和下载文件
SecureCRT下的文件传输协议有以下几种:ASCII.Xmodem.Ymodem.Zmodem ASCII:这是最快的传输协议,但只能传送文本文件. Xmodem:这种古老的传输协议速度较慢,但由 ...
- secureCRT简单上传、下载文件记录
secureCRT简单上传.下载文件记录: 1)sz下载 -y 覆盖 2)rz上传 -y 覆盖 3)以上两个命令属于安装时包含在“Dial-up Networking Support"组中 ...
随机推荐
- mongodb url
https://blog.csdn.net/jianlong727/article/details/53484440
- Visual Studio Code 使用 Git插件报错 - Permission denied (publickey)
在使用GitHub的时候,为了避免每次输入用户名密码,都会使用SSH方式代替Https. 按网上教程,大多数使用SSH-KeyGen生成公私钥对,而后上传公钥至Github,并切换Repositori ...
- SSIS 中将csv 文件批量导出到excel 文件,并设置excel 文件中某些列的data column format 为Text
csv 文件是文本文件类型,但是打开csv 文件后(默认使用本地已经安装的excel 来打开excel 文件),默认显示出来的是general 类型(column data format)的数据, 这 ...
- 报错:Failed on local exception: Host Details : local host is: "master/192.168.52.26"; dest
报错现象 Failed on local exception: com.google.protobuf.InvalidProtocolBufferException: Protocol message ...
- js通过replace()方法配合正则去除空格
<script> //去掉全部空格 var str = " 546546 4564 46 46 88 88 "; var str = str.replace(/\s+/ ...
- [UE4]抛物线指示器
一.抛物线的有以下4中函数 二.本例使用Predict Projectile Path By TraceChannel方法. 抛物线三要素:发射位置.发射角度.发射速度. 1.Start Pos:起始 ...
- Spring核心模块:IoC容器介绍
1.IoC容器运用的是控制反转模式. 2.IoC容器负责管理对象之间的依赖关系,并完成对象的注入. 3.在IoC设计中,会将依赖关系注入到特定组件中,其中setter注入和构造器注入是主要的注入方式. ...
- 利用CNN神经网络实现手写数字mnist分类
题目: 1)In the first step, apply the Convolution Neural Network method to perform the training on one ...
- vue学习好文连接
1.什么是虚拟dom(VNode)? https://github.com/answershuto/learnVue/blob/master/docs/VNode%E8%8A%82%E7%82%B9. ...
- JS禁用浏览器前进后退
<script language="javascript"> //防止页面后退 history.pushState(null, null, document.URL); ...