<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />

<script type="text/javascript">

window.onload = function(){
var input = document.getElementById("file_input");
var result;
var dataArr = []; // 储存所选图片的结果(文件名和base64数据)
var fd; //FormData方式发送请求
//var oSubmit = document.getElementById("submit");
var oInput = document.getElementById("file_input");
var fileList = document.getElementById("fileList");

if(typeof FileReader==='undefined'){
alert("抱歉,你的浏览器不支持 FileReader");
input.setAttribute('disabled','disabled');
}else{
input.addEventListener('change',readFile,false);
}     //handler

function readFile(){
fd = new FormData();
var iLen = this.files.length;
var index = 0;
for(var i=0;i<iLen;i++){
if (!input['value'].match(/.jpg|.gif|.png|.jpeg|.bmp/i)){  //判断上传文件格式
return alert("上传的图片格式不正确,请重新选择");
}
var reader = new FileReader();
reader.index = i;

fd.append(i,this.files[i]);
reader.readAsDataURL(this.files[i]); //转成base64
reader.fileName = this.files[i].name;

reader.onload = function(e){
var imgMsg = {
name : this.fileName,//获取文件名
base64 : this.result //reader.readAsDataURL方法执行完后,base64数据储存在reader.result里
}
dataArr.push(imgMsg);
var fileName=this.fileName
result = '<div class="delete" style="color:red">删除</div><div class="result"><img src="'+this.result+'" src="this"/></div><div align="center">'+fileName+"</div>";
var div = document.createElement('td');
div.innerHTML = result;
div['className'] = 'float';
div['index'] = index;
document.getElementById('peizhitu').appendChild(div);
var name="";
var filedata="";
for (var i = 0; i < dataArr.length; i++) {

if (dataArr[i]) {
name+=dataArr[i].name+"/";
filedata+=dataArr[i].base64+"-";
}
}
document.getElementById("fileName").value = name;
document.getElementById("fileData").value = filedata;
var img = div.getElementsByTagName('img')[0];
img.onload = function(){
var nowHeight = ReSizePic(this); //设置图片大小
this.parentNode.style.display = 'block';
var oParent = this.parentNode;
if(nowHeight){
oParent.style.paddingTop = (oParent.offsetHeight - nowHeight)/2 + 'px';
}
}

div.onclick = function(){
this.remove(); // 在页面中删除该图片元素
delete dataArr[this.index]; // 删除dataArr对应的数据

}
index++;
}
}
}

function send(){
var ctype =$("#ctype").val();
var sort = $("#sort").val();
var submitArr = [];
var name="";
var filedata="";
for (var i = 0; i < dataArr.length; i++) {

if (dataArr[i]) {
name+=dataArr[i].name+"/";
filedata+=dataArr[i].base64+"-";
//submitArr.push(dataArr[i]);
}
}
$.ajax({
url : "${g.createLinkTo(dir:'seatDefects',file:'yjcxcreateSubmit')}",
type : 'post',
data : {"ctype":ctype,"sort":sort,"name":name,"filedata":filedata},
dataType : "json",
success : function(data){
//console.log(data)
//window.location.href = "${g.createLinkTo(dir:'seatDefects',file:'yjcxindex')}";
}

})
}

/* oSubmit.onclick=function(){
if(!dataArr.length){
return alert('请先选择文件');
}
send();
}*/

}
/*
用ajax发送fd参数时要告诉jQuery不要去处理发送的数据,
不要去设置Content-Type请求头才可以发送成功,否则会报“Illegal invocation”的错误,
也就是非法调用,所以要加上“processData: false,contentType: false,”
* */

function ReSizePic(ThisPic) {
var RePicWidth = 200; //这里修改为您想显示的宽度值

var TrueWidth = ThisPic.width; //图片实际宽度
var TrueHeight = ThisPic.height; //图片实际高度

if(TrueWidth>TrueHeight){
//宽大于高
var reWidth = RePicWidth;
ThisPic.width = reWidth;
//垂直居中
var nowHeight = TrueHeight * (reWidth/TrueWidth);
return nowHeight; //将图片修改后的高度返回,供垂直居中用
}else{
//宽小于高
var reHeight = RePicWidth;
ThisPic.height = reHeight;
}
}

</script>

</head>
<body>

<form id="ff" name="sysRole" enctype="multipart/form-data" action="${g.createLinkTo(dir:'seatDefects',file:'yjcxcreateSubmit')}" method="post" onSubmit="return check()">
<input type="hidden" name="cxid" id="cxid" value="${cxid}"/>

<table cellpadding="0" cellspacing="0" border="0" class="box01" width="100%">
<tr>
<th colspan="4">预检车型面套配置信息</th>
</tr>

<tr>
<td width="15%" class="c1 r">车型名称&nbsp;<font style="color:red">*</font></td>
<td class="c2" width="35%"><input type="text" id="ctype" name="ctype" maxlength = "20" class="input easyui-validatebox" data-options="required:true" value="${ctype}"></td>
<td width="15%" class="c1 r">排序&nbsp;<font style="color:red">*</font></td>
<td class="c2" width="35%" colspan="3"><input type="text" class="easyui-numberbox input" id="sort" name="sort" data-options="required:true,min:0,precision:0" value="${sort}"></input></td>
</tr>

<tr >

<td width="15%" class="c1 r">选择配置图&nbsp;<font style="color:red">*</font></td>
<td class="c2" width="35%" colspan="3" >
<div class="container">
%{--<button id="select">(重新)选择图片</button>
<button id="add">(追加)图片</button>--}%
<input hidden="true" type="text" id="fileName" name="fileName" class="input easyui-validatebox" />
<input hidden="true" type="text" id="fileData" name="fileData" class="input easyui-validatebox" />
<input type="file" id="file_input" multiple name="file_input" class="easyui-filebox" />
</div>

<table id="peizhitu">

</table>
</td>

</tr>

</table>
<div class="button">

<input type="submit" value="<g:message code="base.submit" />" class="btn01">&nbsp;&nbsp;-
<input type="button" value="<g:message code="base.back" />" class="btn03" onclick="backto()" >
</div>

</form>
</body>

</html>

如有雷同、请见谅

多图片上传(base64方式传至后台)的更多相关文章

  1. 怎么才能将文件流或者图片转化为base64,传到前台展示

    图片转化为base64,传到前台展示 public String getBase64(){ String imgStr = ""; try { File file = new Fi ...

  2. Java 将图片转成base64,传到前台展示

    后台代码: public String getBase64(SysFile sysFile){ String imgStr = ""; try { File file = new ...

  3. vue实现PC端调用摄像头拍照人脸录入、移动端调用手机前置摄像头人脸录入、及图片旋转矫正、压缩上传base64格式/文件格式

    进入正题 1. PC端调用摄像头拍照上传base64格式到后台,这个没什么花里胡哨的骚操作,直接看代码 (canvas + video) <template> <div> &l ...

  4. 前端js图片上传

    前端js图片上传,原理用input type="file"获取图片然后把图片转换成base64编码传到后台. 图片上传 <!DOCTYPE html><html& ...

  5. 小程序editor篇-基本使用图片上传

    今天小程序项目内,要弄一个editor,富文本编辑功能,支持图文并茂,前几天刚好看了小程序的demo应用,刚好看到editor这个东东,那就安排! 官网示例git地址 大概看了下文档,拉下官方示例,看 ...

  6. php实现base64图片上传方式实例代码

    <?php /** * base64图片上传 * @param $base64_img * @return array */ header("content-type:text/htm ...

  7. TinyMCE编辑器图片上传扩展(base64方式),asp.net mvc5

    编辑器上传图片一般都是先上传到服务器中,若是用户取消或忘记提交表单就产生一张废图在空间里面,时间一长就产生大量占用空间的无用图片,现在就试试提交前先用base64,提交后,在后台处理编辑器内容中的&l ...

  8. file标签 - 图片上传前预览 - FileReader & 网络图片转base64和文件流

    记得以前做网站时,曾经需要实现一个图片上传到服务器前,先预览的功能.当时用html的<input type="file"/>标签一直实现不了,最后舍弃了这个标签,使用了 ...

  9. js实现图片上传预览功能,使用base64编码来实现

    实现图片上传的方法有很多,这里我们介绍比较简单的一种,使用base64对图片信息进行编码,然后直接将图片的base64信息存到数据库. 但是对于系统中需要上传的图片较多时并不建议采用这种方式,我们一般 ...

随机推荐

  1. P2382 化学分子式

    luogu的oier化学一定都很好 这个题是让我们模拟计算化学方程式的过程. 和时间复杂度类似的题目. 我们可以根据括号,将求解分成若干个步骤. 从外部看,需要将一对括号看做一个整体.然后进行计算. ...

  2. [luoguP3325][HNOI2012]矿场搭建

    P3225 [HNOI2012]矿场搭建 题目描述 煤矿工地可以看成是由隧道连接挖煤点组成的无向图.为安全起见,希望在工地发生事故时所有挖煤点的工人都能有一条出路逃到救援出口处.于是矿主决定在某些挖煤 ...

  3. JavaEE权限管理系统的搭建(七)--------管理用户的增删改

    本小结讲解管理用户的增删改查实现, 首先是添加用户,如下图所示,可以看到添加用户的同时也要给用户分配角色,至少给用户分配一个或者是多个角色 页面js部分: $.ajax({ //几个参数需要注意一下 ...

  4. Openresty最佳案例 | 第3篇:Openresty的安装

    转载请标明出处: http://blog.csdn.net/forezp/article/details/78616645 本文出自方志朋的博客 我的服务器为一台全新的centos 7的服务器,所以从 ...

  5. 菜鸟笔记 -- Chapter 6.4.2 详解继承

    6.4.2  详解继承 6.4.2.1  继承入门 继承使得程序架构具有一定的弹性,在程序中复用一些已经定义完善的类不仅可以减少软件开发周期,也可以提高软件的可维护性和可扩展性.基本思想是基于某个父类 ...

  6. c#本地缓存实现

    用了一段时间java,java实现服务端程序很简单,有很多公共开源的组件或者软件.但是c#的很少. 现在准备自己写点东西,学习下新的东西,总结下c#的内容以及我们经常用的内容,抽离成类,组件,模型.方 ...

  7. ABAP术语-Business Framework

    Business Framework 原文:http://www.cnblogs.com/qiangsheng/archive/2007/12/28/1017922.html Integrated, ...

  8. php mysql 计算经纬之间距离 范围内筛选

    <?php /** * 根据经纬度和半径计算出范围 * @param string $lat 纬度 * @param String $lng 经度 * @param float $radius ...

  9. 关于J2EE里面getContextPath()和getRealPath()的区别

    一直老搞不清楚这两个方法的区别,只知道他们都是拿来获取地址的.今天特意写了个小demo试了一下,代码如下: @Override protected void service(HttpServletRe ...

  10. 表单验证(JQ)

    <!DOCTYPE html> <html> <head> <title></title> <meta charset="u ...