多圖片上傳(base64方式傳至后台)


<!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>

如有雷同、請見諒


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM