jQuery 图片上传
1. 概述
1.1 说明
在一些前后端不分离的项目中,经常有一些需要把文件或者图片上传的功能,故记录此代码以便后期使用。
1.2 要求
1.上传,10M以内,限bmp,jpg,png,jpeg等图片格式。提示语:限上传10M以内bmp,jpg,png,jpeg等格式的图片。
2.点击上传按钮上传图片,图片在按钮下方展示;按钮名称更改为重新上传。
3.点击表单确定按钮时,才把表单信息与上传图片信息一同上传至服务器。
1.3 展示
未上传展示:

上传展示:

2. 代码
- 引用jQuery
- 上传后如果不符合要求,则清除上传内容信息(直接.val('')赋值不起作用)
<!DOCTYPE html>
<html> <head>
<meta charset="utf-8" />
<title>图片上传示例</title>
<script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<style type="text/css">
.imageWrapper {
display: flex;
flex-direction: column;
} .imageWrapper .fontTip {
color: #ccc;
line-height: 24px;
} .imageWrapper .btnUpload {
height: 33px;
min-width: 24px;
padding: 0 20px;
border: 1px solid #0064b6;
border-radius: 3px;
background: #0071ce;
color: #fff;
font-size: 14px;
line-height: 33px;
text-align: center;
display: inline-block;
cursor: pointer;
} .imageShow {
margin-top: 16px;
width: 76px;
height: 84px;
border: 1px solid rgba(151, 151, 151, 1);
} .imageShow>img {
width: 100%;
height: 100%;
}
</style>
</head> <body>
<div class="imageWrapper">
<div>
<button id="uploadButton" type="button" class="btnUpload"></button>
<input id="imagePic" name="imagePic" type="file"
accept=".bmp,.jpg,.png,.jpeg,image/bmp,image/jpg,image/png,image/jpeg" style="display:none" />
</div>
<div class="fontTip">
限上传不超过10M的bmp,jpg,png,jpeg格式的图片
</div>
<div class="imageShow">
<img id="uploadImageShow" src="" />
</div>
</div>
</body>
<script type="text/javascript">
var btnUploadText = '上传';
$(document).ready(function () {
$("#uploadButton").text(btnUploadText)
$(".imageShow").hide()
$('#uploadButton').click(function () {
$('#imagePic').click();
});
$("#imagePic").on("change", function (e) {
var file = e.target.files[0]; //获取图片资源
var fileTypes = ["bmp", "jpg", "png", "jpeg"];
var bTypeMatch = false
for (var i = 0; i < fileTypes.length; i++) {
var start = file.name.lastIndexOf(".");
var fileType = file.name.substring(start + 1);
if (fileType.toLowerCase() == fileTypes[i]) {
bTypeMatch = true;
break;
}
}
if (bTypeMatch) {
if (file.size <= 1024 * 1024 * 10) {
var reader = new FileReader();
reader.readAsDataURL(file); // 读取文件
// 渲染文件
reader.onload = function (arg) {
$(".imageShow").show()
$("#uploadImageShow").attr("src", arg.target.result)
btnUploadText = '重新上传'
$("#uploadButton").text(btnUploadText)
}
} else {
alert('仅支持不超过10M的图片');
emptyImageUpload("#imagePic")
$("#uploadImageShow").attr("src", "")
$(".imageShow").hide()
btnUploadText = '上传'
$("#uploadButton").text(btnUploadText)
return false;
}
} else {
alert('仅限bmp,jpg,png,jpeg图片格式');
emptyImageUpload("#imagePic")
$("#uploadImageShow").attr("src", "")
$(".imageShow").hide()
btnUploadText = '上传'
$("#uploadButton").text(btnUploadText)
return false;
}
});
})
//清空上传图片信息
function emptyImageUpload(selector) {
var fi;
var sourceParent;
if (selector) {
fi = $(selector);
sourceParent = fi.parent();
} else {
return;
}
$("<form id='tempImgForm'></form>").appendTo(document.body); var tempImgForm = $("#tempImgForm");
tempImgForm.append(fi);
tempImgForm.get(0).reset();
sourceParent.append(fi);
tempImgForm.remove();
}
</script> </html>
jQuery 图片上传的更多相关文章
- jquery 图片上传本地预览V1.2
基于JQUERY扩展,图片上传预览插件 目前兼容浏览器(IE 谷歌 火狐) 不支持safari 代码进行小小的压缩 如果看源码 自己解压就行了 版本已升级 修复jquery版本问题 支持任意jqu ...
- Jquery图片上传组件,支持多文件上传
Jquery图片上传组件,支持多文件上传http://www.jq22.com/jquery-info230jQuery File Upload 是一个Jquery图片上传组件,支持多文件上传.取消. ...
- Jquery图片上传预览效果
uploadPreview.js jQuery.fn.extend({ uploadPreview: function (opts) { var _self = this, _this = $(thi ...
- jquery图片上传
总结两个图片上传的方法: 一:使用jquery.form中的ajaxSubmit来实现上传. <script src="~/JavaScript/jquery-1.10.2.min.j ...
- jQuery图片上传前先在本地预览(不经过后端处理)
前段时间遇到一个问题,前端想实现图片上传预览(不经过后端PHP或JAVA处理),用户点击file按钮上传文件,点击确定马上就能看到预览的效果,但在实现的时候无论怎样都取不到file上图片的真实路径,得 ...
- jQuery图片上传前先在本地预览
js代码: /* *名称:图片上传本地预览插件 v1.1 *作者:周祥 *时间:2013年11月26日 *介绍:基于JQUERY扩展,图片上传预览插件 目前兼容浏览器(IE 谷歌 火狐) 不支持saf ...
- 【转】HTML5 jQuery图片上传前预览
hTML5实现表单内的上传文件框,上传前预览图片,针刷新预览images,本例子主要是使用HTML5 的File API,建立一個可存取到该 file的url,一个空的img标签,ID为img0,把选 ...
- HTML5 jQuery图片上传前预览
hTML5实现表单内的上传文件框,上传前预览图片,针刷新预览images,本例子主要是使用HTML5 的File API,建立一個可存取到该file的url,一个空的img标签,ID为img0,把选择 ...
- jquery图片上传前预览剪裁
http://www.webmotionuk.co.uk/jquery/image_upload_crop.php http://keleyi.com/a/bjad/liuvpkke.htm 不错的d ...
随机推荐
- (Eclipse) 安装Subversion1.82(SVN)插件
简介 :SVN是团队开发的代码管理工具,它使我们得以进行多人在同一平台之下的团队开发. 解决问题:Eclipse下的的SVN插件安装. 学到 :Eclipse下的的SVN插件安装. 资源地 ...
- VS2017装了西红柿插件之后,启动很多次才能启动成功,进程有很多devenv.exe但是就是无法启动成功
VS2017装了西红柿插件之后,启动很多次才能启动成功,进程有很多devenv.exe但是就是无法启动成功,这个可能是西红柿插件visual assist的问题 启动vs命令行 输入: devenv ...
- base64,AES,RSA,SHA和MD5等加密方式(jdk)
import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; import javax.crypto.Cipher; import jav ...
- NtQuerySystemInformation 枚举进程
函数原型: NTSTATUS WINAPI NtQuerySystemInformation( _In_ SYSTEM_INFORMATION_CLASS SystemInformat ...
- DBMS的四大特性
- win10文件名或文件路径过长导致无法删除或复制的解决办法
试过了百度上的所有方法,命令行中del没有作用,Unlocker也没用,批处理也不起作用,360的强力删除也没有作用. 最后找到一种方法,在压缩该文件的时候选择删除源文件. 但是需要注意一点,用360 ...
- Junit5的依赖添加及RunWith(SpringJUnit4ClassRunner.class)注解使用
首先Junit5依赖应该配置为 <dependency> <groupId>org.junit.jupiter</groupId> <artifactId&g ...
- VS2015使用Nuget安装OpenCV3.X以及Python3安装OpenCV3.X
VS2015已经自带Nuget安装工具了,所以,新建一个项目,点击管理Nuget包 搜索OpenCV3 注意,目前只有这个版本支持VS2015,也就是平台工具集可以为vs140,其他的都会报错,报错我 ...
- numpy.flatnonzero():
numpy.flatnonzero(): 该函数输入一个矩阵,返回扁平化后矩阵中非零元素的位置(index) 这是官方文档给出的用法,非常正规,输入一个矩阵,返回了其中非零元素的位置. 1 >& ...
- Leetcode150. Evaluate Reverse Polish Notation逆波兰表达式求值
根据逆波兰表示法,求表达式的值. 有效的运算符包括 +, -, *, / .每个运算对象可以是整数,也可以是另一个逆波兰表达式. 说明: 整数除法只保留整数部分. 给定逆波兰表达式总是有效的.换句话说 ...