HTML5预览图片、异步上传文件
注意啦:本文的代码都是以JQuery为示例,jq_开头的变量都是jq对象。
在HTML5中,我们可以在图片上传之前对图片进行预览,就像下面这么做
jq_upload_file.change(function(){
jq_img.attr("src",window.URL.createObjectURL(this.files.item(0)));
jq_div.css("backgroundImage","url("+window.URL.createObjectURL(this.files.item(0))+")");
});//end change
那么异步上传文件,就只需要利用HTML5中的FormData,也就是这样:
$.extend({
AjaxUploadFile:function(url,formData,success,failure){
var oReq = new XMLHttpRequest();
oReq.open( "POST", url , true );
oReq.onload = function(oEvent) {
if (oReq.status == 200)
{
if(typeof success=="function") success(oReq);
}
else
{
if(typeof failure=="function") failure(oReg);
}
};
oReq.send(formData);
}
});
调用:
var form=new FormData();
form.append("pic",jq_upload_file.get(0).files[0]);
//关于这里,其他文章有提到,可以直接传个DOM节点进去,即form.append("pic",jq_upload_file.get(0))
//另外,对于FormData可以将整个表单form的节点传入,形成一个完整的FormData,即var form=new FormData(jq_form.get(0))
$.AjaxUploadFile(
"上传的URL",
form,
function(oReq){
//处理oReq.responseText
}
);
当然,上传之前,可能需要先验证一下文件大小、类型等等:
$.extend({
CheckUploadFile:function(jq_input_file){
if(jq_input_file.get(0).files.item(0).size>300*1024)
{
return "文件大于300KB,无法上传";
}
var allow_pic=["jpg","jpeg","png","gif"];
var flag=false;
for(var i in allow_pic)
{
if(jq_input_file.get(0).files.item(0).type.indexOf(allow_pic[i])!=-1)
{
flag=true;
break;
}
}
return flag?"":"指定的文件格式无法上传";
}
});
HTML5预览图片、异步上传文件的更多相关文章
- jQuery + ashx 实现图片按比例预览、异步上传及显示
目录(?)[-] 注ajax 方式异步读取数据库显示图片的方法同上传一致使用 ashx 返回base64字符串在客户端处理即可 记录一个让我纠结良久的问题 在Page_Load 函数中只有第一个用 S ...
- 7月3日 Django 头像预览、用户上传文件操作、logging、debug_tool_bar
1. 注册功能 1. 头像预览 //头像预览 $('#id_avatar').change(function () { console.log(this.files[0]) //找到选中的头像文件 v ...
- h5可预览 图片ajax上传 ,后台有点弱不知道数据怎么取,但是可以肯定数据上传成功了
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- php ajax bootstrap多文件上传图片预览,ajax上传文件
<form enctype="multipart/form-data" id="upForm"> <label class="btn ...
- h5可预览 图片ajax上传 (补更),后台数据获取方法---php
原理是 先获取,然后手动转移文件路径,不然会被服务器自动删除 demo如下: <?php header('content-Type:text/html;charset=utf-8'); $fil ...
- HTML5 jQuery+FormData 异步上传文件,带进度条
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <link href ...
- Android仿微信图片上传,可以选择多张图片,缩放预览,拍照上传等
仿照微信,朋友圈分享图片功能 .可以进行图片的多张选择,拍照添加图片,以及进行图片的预览,预览时可以进行缩放,并且可以删除选中状态的图片 .很不错的源码,大家有需要可以下载看看 . 微信 微信 微信 ...
- 关于js异步上传文件
好久没登录博客园了,今天来一发分享. 最近项目里有个需求,上传文件(好吧,这种需求很常见,这也不是第一次遇到了).当时第一想法就是直接用form表单提交(原谅我以前就是这么干的),不过表单里不仅有文件 ...
- ajax异步上传文件FormDate方式,html支持才可使用
今天需要做一个头像的预览功能,所以我想到了异步上传文件. 总结几点: 异步上传难点: 文件二进制流如何获取 是否需要设置表单的头,就是content-Type那里.异步,所以无所谓了吧. 其他就差不多 ...
随机推荐
- 在VS中配置并测试opencv
什么是opencv? opencv是一个计算机视觉库.它目前有两个分支2.4.X和3.X,2.4.X版本是经典版本,网上的教程资源大多是关于它的,所以推荐使用2.4.X. 它能帮我做什么? 这意味着你 ...
- 快速上手微信小程序-快递100
2007 年 1 月 9 日,乔布斯在旧金山莫斯科尼会展中心发布了首款 iPhone,而在十年后的 1 月 9 日,微信小程序正式上线.张小龙以这样的形式,向乔布斯致敬. 小程序在哪里? 小程序功能模 ...
- 【Backbone】 Backbone初探
前言 在此之前研究了一段React,但是不得不承认React.Vue等MVVM框架相对于原有的Jquery来说,简直是翻天覆地的不同.它们之间的差异不仅仅体现在框架思维的不同,而是ES5到ES6的编程 ...
- 有关linux标准输出、标准输入、标准错误的重定向问题
1.简单的命令行重定向问题. 例:ls -al test test1 test2 1>out.txt 2>err.tx 这里ls这句命令行命令之后将标准输入重定向到out ...
- 深入理解Hadoop集群和网络
导读:云计算和Hadoop中网络是讨论得相对比较少的领域.本文原文由Dell企业技术专家Brad Hedlund撰写,他曾在思科工作多年,专长是数据中心.云网络等.文章素材基于作者自己的研究.实验和C ...
- 根据相同的字段创建或者修改一个Model
public static class ObjectUtils { /// <summary> /// 根据source创建一个强类型的Object,并根据相同属性名进行赋值. /// & ...
- DiskGenius(磁盘分区/数据恢复) 32位 V4.9.1 免费绿色版
软件名称: DiskGenius(磁盘分区/数据恢复) 32位 软件语言: 简体中文 授权方式: 免费软件 运行环境: Win 32位/64位 软件大小: 19.5MB 图片预览: 软件简介: Dis ...
- PHP5.5在windows 安装使用 memcached 服务端的方法以及 php_memcache.dll 下载
PHP5.5 在windows下安装 memcached 的方法 下载服务端资源 http://download.csdn.net/detail/zsjangel/7104727 下载完成后,解压(我 ...
- [DP之计数DP]
其实说实在 我在写这篇博客的时候 才刚刚草了一道这样类型的题 之前几乎没有接触过 接触过也是平时比赛的 没有系统的做过 可以说0基础 我所理解的计数dp就是想办法去达到它要的目的 而且一定要非常劲非常 ...
- linux操作数据库
1.显示数据库 show databases; 2.选择数据库 use 数据库名; 3.显示数据库中的表 show tables; 4.显示数据表的结构 describe 表名; 5.显示表中记录 S ...