移動端圖片上傳預覽
效果:
基本操作:
(1)上傳:
點選圖示上傳預覽;
(2)刪除:
點選右上角編輯;
然後選擇要刪除的圖片;
難點:
一個檔案域只能上傳一張圖片,input標籤d的multiple=“multiple”屬性在ios端中可以實現圖片的多張選擇(是否能多張傳沒有測試,但在本程式碼中單次也是能預覽單張),但是安卓端中multiple無效(安卓手機調出新手機相簿後點擊圖片直接上傳),
html程式碼:
<form action="#" method="post" enctype="multipart/form-data">
<div id="ad"> <div class="request_title"><span style="float:left;height:2rem;width:40%">圖片說明(可選)</span><span class="show" id="dd">編輯</span><span id="over" class="hidden">完成</span></div> <div class="request_select2" id="ss"> <div id="pink"> <div class="dd"><input type="file" name="file1" id="ad_doc1" accept="image/*" onchange="cnm(this)"><span>+</span></div> <!–按鈕–> </div> </div> </div>
css程式碼:
js程式碼:
mui.previewImage();
document.getElementById("dd").onclick=function(){
var tt=document.getElementsByClassName("yy");
if(tt.length>0){
var a1=document.getElementById("pink");
var a2=a1.getElementsByClassName("yy");
for( var i=0;i<a2.length;i++){
a2[i].getElementsByTagName("div")[0].className="cel1";
}
document.getElementById("dd").className="hidden";
document.getElementById("over").className="show";
document.getElementsByClassName("dd")[0].className="dd hidden";
};
document.getElementById("over").onclick=function() {
var a1 = document.getElementById("pink");
var a2 = a1.getElementsByClassName("yy");
for (var i = 0; i < a2.length; i++) {
a2[i].getElementsByTagName("div")[0].className = "cel";
}
document.getElementById("dd").className = "show";
document.getElementById("over").className = "hidden";
document.getElementsByClassName("dd")[0].className = "dd";
}
};
function removeOption(obj){
obj.parentNode.parentNode.previousElementSibling.remove();//previousElementSibling是獲取上一個兄弟結點
obj.parentNode.parentNode.remove();
}
function cnm(obj){
var ab=document.getElementById("pink");
var cd=ab.getElementsByClassName("yy");
if(cd.length<3){
var a1=obj.getAttribute("name");
var a2=a1.substr(a1.length-1,1);//獲取名字的最後一位字元,(start,)
var a3=parseInt(a2);//將字串轉換成數字型別
obj.parentNode.className="hidden";
var a4=a3+1;
var ad_doc="ad_doc"+a4;
var file="file"+a4;
var old_doc="ad_doc"+a3;
var ad_img="ad_img"+a3;
var para=document.createElement("div");
para.className="dd";
para.innerHTML="<input type='file' name='"+file+"' id='"+ad_doc+"' accept='image/*' onchange='cnm(this)' /><span >+</span>";
obj.parentNode.parentNode.appendChild(para);
var para2=document.createElement("div");
para2.className="yy";
para2.innerHTML=" <img class='hidden ci' id='"+ad_img+"' src='./images/5.jpg' width='64' height='64' style='margin-right:0.5rem' data-preview-src='' data-preview-group='1'/><div class='hidden cel' ><span class='ch' onclick='removeOption(this)' >+</span></div></div>";
document.getElementById("pink").insertBefore(para2,document.getElementById("pink").lastChild);
setImagePreview(old_doc,ad_img,'64','64');
}else{
alert("只能上傳三張圖片!");
}
}
//下面用於圖片上傳預覽功能
function setImagePreview(doc,preview,width,height) {
//input
var docObj = document.getElementById(doc);
//img
var imgObjPreview = document.getElementById(preview);
//div
var divs = document.getElementById("localImag");
if (docObj.files && docObj.files[0]) {
//火狐下,直接設img屬性
imgObjPreview.style.display = 'block';
imgObjPreview.style.width = width+'px';
imgObjPreview.style.height = height+'px';
//imgObjPreview.src = docObj.files[0].getAsDataURL();
//火狐7以上版本不能用上面的getAsDataURL()方式獲取,需要一下方式
imgObjPreview.src = window.URL.createObjectURL(docObj.files[0]);
imgObjPreview.className="";
imgObjPreview.className="show ci";
} else {
//IE下,使用濾鏡
docObj.select();
var imgSrc = document.selection.createRange().text;
var localImagId = document.getElementById("localImag");
//必須設定初始大小
localImagId.style.width = width+"px";
localImagId.style.height = height+"px";
//圖片異常的捕捉,防止使用者修改後綴來偽造圖片
try {
localImagId.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)";
localImagId.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgSrc;
} catch(e) {
alert("您上傳的圖片格式不正確,請重新選擇!");
return false;
}
imgObjPreview.style.display = 'none';
document.selection.empty();
}
return true;
}
相關推薦
移動端圖片上傳預覽
效果: 基本操作: (1)上傳: 點選圖示上傳預覽; (2)刪除: 點選右上角編輯; 然後選擇要刪除的圖片; 難點: 一個檔案域只能上傳一張圖片,input標籤d的multiple=“multiple”屬性在i
HTML5 手機端圖片上傳預覽
1、html頁面 <div class="addFile"> <p class="company">資料上傳</p> <div class="photoes getoutinput"> <div class="uplist">
多圖片上傳預覽實現以及移動端web多檔案上傳
注:先寫下兩個點,等空下來再上程式碼~ 1.多圖片上傳預覽,且可對圖片進行編輯 可對 input[type=file] 物件獲取 obj.files 獲取 FileList,但為只讀模式,不可寫。
圖片上傳預覽
bject too sca 圖片格式 else 遍歷 bsp turn filters Js腳本頁面 <!doctype html> <html> <head> <meta charset="utf-8"> <titl
【圖片】移動端圖片上傳旋轉、壓縮的解決方案
dex adding .com pad 移動 side www shu add 移動端圖片上傳旋轉、壓縮的解決方案 來源 知乎 作者 林鑫 工作上有手機上傳準考證等圖片的功能,這個是非常必要的,作者寫的很全面,就直接記錄這個地址了 還有一篇 文件的上傳、下載
二十七、單張圖片上傳預覽
第一部分 ajax 效果 document 圖片 pos itl .data title html部分 <div class="new-store-phone"> <span class="phone-title">營業執照
簡單的做一個圖片上傳預覽(web前端)
chrom 預覽 web前端 console fine 分享圖片 fire title right 轉載:點擊查看原文 在做web項目很多的時候圖片都是避免不了的,所以操作圖片就成了一個相對比較棘手的問題,其實也不是說很麻煩,只是說上傳然後直接預覽的過
html5實現圖片上傳預覽
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> #te
JS原生實現本地圖片上傳預覽
執行方式如下: $("input").change(function() { var config = { imgWrapWidth: 300, //px imgWrapHeight: 200, //px imgMaxWidth: "100%", im
vue自定義圖片上傳預覽功能
//vue裡面的HTML程式碼 <div id="modificationPreview"> <input type="file" accept="image/*" @change="changeFile" id="m
圖片上傳預覽(可根據自己得需要封裝元件)
話不多說,先上圖 實現簡單得多行多圖片上傳,可以選擇其中任意一個圖片當作你需要得預設圖傳到後臺,然後一次性提交 圖片上傳重要得也就兩個屬性:new FormData()和new FileReader() 程式碼: <template> <
js圖片上傳預覽功能相容實現
<html> <head> <title>js圖片上傳預覽</title> <script> function PreviewImage(imgFile) { var filextension=imgFile.value.subst
基於vue的移動端圖片上傳
1、上傳效果(含新增和刪除設計圖): 達到上傳上限,隱藏上傳圖示,刪除後,數量小於上限會自動顯示。 2、html程式碼 //使用前,先把元件引入 <updatefile :multiple="true" :max=6 :list="imgLis
PHPCMS V9手機移動端圖片上傳(PHPCMS V9前臺使用layui的上傳元件代替預設的SWFupload上傳圖片)
預設phpcms的上傳 圖片使用的是swfupload,導致手機移動端上傳圖片無法使用。這裡我們使用layui的上傳元件來使其支援手機移動端圖片上傳,效果圖如下: 實現步驟: 一、 開啟phpcms
圖片上傳預覽的簡單程式碼
效果如下圖 程式碼如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=dev
springmvc圖片上傳、jquery 圖片上傳預覽
寬為限 緊用功 功夫到 滯塞通 簡介 專案需求,需要做圖片上傳功能,圖片上傳肯定得給個預覽嘛,然後就找了下面這個方案 ajaxfileupload外掛上傳 ajaxfileupload.js網上傳了好幾個版本,選擇自己可以使用的就好了。這個外掛是N多
jquery.fileupload.js外掛使用初探--多圖片上傳預覽
一、前臺程式碼: <!DOCTYPE html> <html> <head> <title>jquery.fileupload.js使用測試</title> <script src="jq
前端js實現圖片上傳預覽
前端js實現圖片上傳 前端js實現圖片上傳的原理是通過input標籤的type=file屬性將input標籤定義為上傳檔案,對input進行onchange事件的監聽,當input的value值改變時代表使用者已經上傳了圖片,而input的value值就是使用者上傳的圖片的相對路徑,new
Jcrop外掛+Canvas實現圖片上傳預覽+圖片裁剪上傳
前言 想實現一個功能:使用者點選上傳按鈕,選擇圖片後。圖片顯示在一個彈出框上,並可以對圖片進行裁剪。裁剪後的圖片顯示在頁面上。提交表單即可上傳圖片。 遇到問題 瀏覽器的安全設定不讓使用者獲取上傳的圖片路徑,實際獲取的是c:\fakepath\a.jp
使用base64進行移動端圖片上傳
之前搞微信上的圖片上傳,想直接通過介面上傳到自己的圖片伺服器,發現移動端瀏覽器上挺多坑的,使用最簡單的form-data形式好像不成。研究了一下,發現base64格式通用性較強。 base64編碼 base64是一種使用可列印字元來描述二進位制資料的方法