日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 編程 > HTML > 正文

html5 拖拽上傳圖片實例演示

2020-03-24 19:17:29
字體:
來源:轉載
供稿:網友
因為標題寫的是實例,所以本次就不做講解了,因為這個實例我也算是東拼西湊整出來的,參考了大概5、6款拖拽上傳的插件和demo,然后把其中好的地方挑出來,最后就成了這么一個實例,一起來看下吧(地址不能保證長久有效,如果失效請在文章最后點擊demo下載):

界面樣式我是參考了一個國外的相冊網站,改動不大,只是把鳥語轉換成中文,以及上傳時的樣式也進行了改動,之所以選這個的原因就是,我很容易做擴展,它支持3種方式添加圖片,一種拖拽上傳,一種常規的選擇文件上傳,另外的就是添加網絡圖片。它很巧妙的把三種上傳模式整合到了一起,而且你可以用IE瀏覽器瀏覽下,如果不支持HTML5,是沒有拖拽上傳圖片的提示的,如圖:

拖拽上傳最重要的就是js部分的代碼,它實現了70%的功能,另外30%僅僅是把圖片信息提交到后臺,然后做對應的處理,比如壓縮啊,裁剪啊云云。所以先來看下js實現代碼吧。

復制代碼代碼如下:
$().ready(function(){
if($.browser.safari || $.browser.mozilla){
$('#dtb-msg1 .compatible').show();
$('#dtb-msg1 .notcompatible').hide();
$('#drop_zone_home').hover(function(){
$(this).children('p').stop().animate({top:'0px'},200);
},function(){
$(this).children('p').stop().animate({top:'-44px'},200);
});
//功能實現
$(document).on({
dragleave:function(e){
e.preventDefault();
$('.dashboard_target_box').removeClass('over');
},
drop:function(e){
e.preventDefault();
//$('.dashboard_target_box').removeClass('over');
},
dragenter:function(e){
e.preventDefault();
$('.dashboard_target_box').addClass('over');
},
dragover:function(e){
e.preventDefault();
$('.dashboard_target_box').addClass('over');
}
});
var box = document.getElementById('target_box');
box.addEventListener("drop",function(e){
e.preventDefault();
//獲取文件列表
var fileList = e.dataTransfer.files;
var img = document.createElement('img');
//檢測是否是拖拽文件到頁面的操作
if(fileList.length == 0){
$('.dashboard_target_box').removeClass('over');
return;
}
//檢測文件是不是圖片
if(fileList[0].type.indexOf('image') === -1){
$('.dashboard_target_box').removeClass('over');
return;
}
if($.browser.safari){
//Chrome8+
img.src = window.webkitURL.createObjectURL(fileList[0]);
}else if($.browser.mozilla){
//FF4+
img.src = window.URL.createObjectURL(fileList[0]);
}else{
//實例化file reader對象
var reader = new FileReader();
reader.onload = function(e){
img.src = this.result;
$(document.body).appendChild(img);
}
reader.readAsDataURL(fileList[0]);
}
var xhr = new XMLHttpRequest();
xhr.open("post", "test.php", true);
xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
xhr.upload.addEventListener("progress", function(e){
$("#dtb-msg3").hide();
$("#dtb-msg4 span").show();
$("#dtb-msg4").children('span').eq(1).css({width:'0px'});
$('.show').html('');
if(e.lengthComputable){
var loaded = Math.ceil((e.loaded / e.total) * 100);
$("#dtb-msg4").children('span').eq(1).css({width:(loaded*2)+'px'});
}
}, false);
xhr.addEventListener("load", function(e){
$('.dashboard_target_box').removeClass('over');
$("#dtb-msg3").show();
$("#dtb-msg4 span").hide();
var result = jQuery.parseJSON(e.target.responseText);
alert(result.filename);
$('.show').append(result.img);
}, false);
var fd = new FormData();
fd.append('xfile', fileList[0]);
xhr.send(fd);
},false);
}else{
$('#dtb-msg1 .compatible').hide();
$('#dtb-msg1 .notcompatible').show();
}
});

開始我是先判斷瀏覽器類型,因為剛才介紹過,不同瀏覽器看到的是不同界面。主要實現代碼是從 功能實現 開始的,這塊具體為何這樣操作,原理是什么,我就不多說了,大家可以參考下這篇文章:《人人網首頁拖拽上傳詳解(HTML5 Drag Drop、FileReader API、formdata)》,不過ajax上傳部分的代碼還是有點不一樣的,因為人人那個似乎有點麻煩,我就另尋途徑了。
最后就是上傳部分的PHP代碼了,這里我只是提供個參考,你可以根據項目的需求來自己編寫。

復制代碼代碼如下:
$r = new stdClass();
header('content-type: application/json');
$maxsize = 10; //Mb
if($_FILES['xfile']['size'] ($maxsize * 1048576)){
$r- error = "圖片大小不超過 $maxsize MB";
}
$folder = 'files/';
if(!is_dir($folder)){
mkdir($folder);
}
$folder .= $_POST['folder'] ? $_POST['folder'] . '/' : '';
if(!is_dir($folder)){
mkdir($folder);
}
if(preg_match('/image/i', $_FILES['xfile']['type'])){
$filename = $_POST['value'] ? $_POST['value'] : $folder . sha1(@microtime() . '-' . $_FILES['xfile']['name']) . '.jpg';
}else{
$tld = split(',', $_FILES['xfile']['name']);
$tld = $tld[count($tld) - 1];
$filename = $_POST['value'] ? $_POST['value'] : $folder . sha1(@microtime() . '-' . $_FILES['xfile']['name']) . $tld;
}
$types = Array('image/png', 'image/gif', 'image/jpeg');
if(in_array($_FILES['xfile']['type'], $types)){
$source = file_get_contents($_FILES["xfile"]["tmp_name"]);
imageresize($source, $filename, $_POST['width'], $_POST['height'], $_POST['crop'], $_POST['quality']);
}else{
move_uploaded_file($_FILES["xfile"]["tmp_name"], $filename);
}
$path = str_replace('test.php', '', $_SERVER['SCRIPT_NAME']);
$r- filename = $filename;
$r- path = $path;
$r- img = ' img src="' . $path . $filename . '" alt="image" /
echo json_encode($r);
function imageresize($source, $destination, $width = 0, $height = 0, $crop = false, $quality = 80) {
$quality = $quality ? $quality : 80;
$image = imagecreatefromstring($source);
if ($image) {
// Get dimensions
$w = imagesx($image);
$h = imagesy($image);
if (($width $w $width) || ($height $h $height)) {
$ratio = $w / $h;
if (($ratio = 1 || $height == 0) $width !$crop) {
$new_height = $width / $ratio;
$new_width = $width;
} elseif ($crop $ratio = ($width / $height)) {
$new_height = $width / $ratio;
$new_width = $width;
} else {
$new_width = $height * $ratio;
$new_height = $height;
}
} else {
$new_width = $w;
$new_height = $h;
}
$x_mid = $new_width * .5; //horizontal middle
$y_mid = $new_height * .5; //vertical middle
// Resample
error_log('height: ' . $new_height . ' - width: ' . $new_width);
$new = imagecreatetruecolor(round($new_width), round($new_height));
imagecopyresampled($new, $image, 0, 0, 0, 0, $new_width, $new_height, $w, $h);
// Crop
if ($crop) {
$crop = imagecreatetruecolor($width ? $width : $new_width, $height ? $height : $new_height);
imagecopyresampled($crop, $new, 0, 0, ($x_mid - ($width * .5)), 0, $width, $height, $width, $height);
//($y_mid - ($height * .5))
}
// Output
// Enable interlancing [for progressive JPEG]
imageinterlace($crop ? $crop : $new, true);
$dext = strtolower(pathinfo($destination, PATHINFO_EXTENSION));
if ($dext == '') {
$dext = $ext;
$destination .= '.' . $ext;
}
switch ($dext) {
case 'jpeg':
case 'jpg':
imagejpeg($crop ? $crop : $new, $destination, $quality);
break;
case 'png':
$pngQuality = ($quality - 100) / 11.111111;
$pngQuality = round(abs($pngQuality));
imagepng($crop ? $crop : $new, $destination, $pngQuality);
break;
case 'gif':
imagegif($crop ? $crop : $new, $destination);
break;
}
@imagedestroy($image);
@imagedestroy($new);
@imagedestroy($crop);
}
}

PHP最終會返回一個JSON格式的數組,我返回的信息就是圖片地址、名稱,還有段img的html代碼,最后在js那邊獲取到json數組并處理,至此,操作結束。
文章最開始提到,還有點擊選擇文件上傳和網絡圖片,因為這2個不屬于這次的主題范圍內,就不說了。況且這2個功能實現起來都不麻煩。
demo下載html教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
91精品免费在线观看| 一区二区三区久久| 日韩在线不卡一区| 亚洲欧美99| 亚洲一区精品电影| 欧美日韩久久久| 国产 日韩 欧美 综合 一区| 国产卡1卡2卡三卡在线| 视频一区日韩| 91精品国产免费| 国产小视频在线观看免费| 国产欧美日韩精品在线观看| 欧美日韩综合视频| 免费在线视频一区二区| 日韩中文字幕| 亚洲黄色一区二区| 精品国产欧美| 亚洲综合在线中文字幕| 国产区高清在线| 日韩高清不卡在线| 91精品国产乱码久久蜜臀| 亚洲一区不卡在线| 区日韩二区欧美三区| 美国av一区二区| 日韩视频在线免费看| 1区不卡电影| 一本一道久久a久久精品综合蜜臀| 欧美三级中文字幕| 最新中文字幕在线播放 | 一区二区三区在线播放欧美| 午夜精品一区二区三区免费视频| 国产一级一片免费播放| 国产欧美日韩综合| 中文字幕一区二区三区精品| 九九视频精品免费| 国产视频一区三区| 欧美日韩综合高清一区二区| 91精品综合久久久久久| 日本a口亚洲| 在线中文字幕网站| 国产乱一区二区| 91精品国产调教在线观看| 亚洲欧美99| 国产欧美综合在线观看第十页| 一区二区视频在线观看免费的 | 国产嫩草影院久久久久| 天天综合天天做| 日韩中文字幕视频在线观看| 中文字幕日韩欧美在线| 综合图区亚洲白拍在线| 精品人妻二区中文字幕| 精品欧美日韩在线| 日韩在线观看视频一区二区| 精品激情国产视频| 欧美 中文字幕| 国产1区在线| 在线国产三级| 欧美特黄一区| 欧美成人vr18sexvr| 亚洲成av人片一区二区密柚| 精品日本视频| 一区二区三区精品久久久| 久久综合九色欧美综合狠狠| 亚洲乱码中文字幕| 91精品免费在线观看| 欧美日韩国产页| 欧美久久在线观看| 精品一区二区在线观看视频| lutube成人福利在线观看| 成人ww免费完整版在线观看| 免费视频最近日韩| 欧美日韩高清一区二区| 成人无遮挡免费网站视频在线观看| 欧美在线日韩在线| 日韩欧美在线字幕 | 91精品视频国产| 在线观看精品国产| aaa免费看大片| 欧美在线日韩| 欧美激情一区二区在线| 国产三级在线观看视频| 亚洲小说春色综合另类电影| 国产欧美中文在线| 成人无遮挡免费网站视频在线观看| 国产免费电影网站入口| 国产视频一区二| 国产成人中文字幕| 国产精品福利视频一区二区三区| 精品一二三四| 国产日韩成人精品| 午夜国产在线| 亚洲欧美99| 日韩你懂的电影在线观看| 欧美成人精品在线| 日韩精品三级| 日韩在线观看视频一区| 亚洲娇小xxxx欧美娇小| 欧美一级日韩一级| 精品欧美久久久| 日韩久久不卡| 亚洲免费观看视频| 日韩午夜高潮| 日韩视频在线一区| 亚洲一区在线观看免费| 日韩精品乱码av一区二区| 国产午夜在线观看| 一级特黄aaa大片在线观看| 国产一区三区三区| 麻豆一区二区99久久久久| 欧美中日韩在线| 欧美日韩国产在线| 国产欧美日韩中文久久| 欧美日韩亚洲一区| 精品网站999www| 中文字幕国产日韩| 色综合婷婷久久| 中文字幕在线精品| 日韩三级高清在线| 成人精品视频一区| 91久久精品国产91久久| 欧美日韩久久久| 久99久视频| 国产91久久久久蜜臀青青天草二| 日韩字幕在线观看| 日韩 欧美 中文| 精品人妻一区二区三区视频| 欧美 日韩 国产在线观看| 欧美日韩综合在线免费观看| 欧美日韩国产区| 欧美亚洲国产日韩2020| 日韩中文字幕在线播放| 国产一级在线| 美女尤物久久精品| 精品日韩视频在线观看 | 一区二区不卡视频在线观看| 国产欧美久久久久久久久| 国产精久久久久| 久艹在线视频| 91精品国产自产观看在线| 欧美日韩国产页| 国产 欧美 在线| 中文字幕视频在线观看| 精品日韩欧美在线| 亚洲黄色一区二区| 国产欧美日韩在线观看| 不卡专区在线| 欧美日韩在线第一页| 九色蝌蚪视频在线| 亚洲中文字幕一区| 国产在线精品国自产拍免费| 欧美一级免费看| 九九在线精品| 中文字幕在线观看精品| 欧美日韩在线播放一区| 国产一级片播放| 亚洲三级免费看| 亚洲三级国产| 国产69精品久久久久孕妇国产69久久| 国产丝袜一区二区| 久久精品不卡| 中文字幕在线视频网| 国产欧美日韩不卡| 亚欧成人精品| 日韩av不卡在线观看| 国产不卡在线| 国产欧美在线观看| 欧美日韩国产页| 亚洲一区精品在线| 精品久久人人做人人爽| 欧美91精品| 亚洲图片小说综合| 三级网站免费观看| 欧美日韩国产成人| 欧美日韩三级在线观看| 中文字幕 亚洲一区| 日韩精品久久久| 欧美日韩精品是欧美日韩精品| 日韩精品在线观看视频| 中文字幕欧美国内| 欧美日韩中文字幕在线视频| 高清不卡一区二区| 欧美日韩在线观看一区| 国产www.大片在线| 欧美日韩一二三| 欧美日韩精品在线观看| 日韩亚洲欧美中文在线| 日韩精品大片| 欧美日韩性视频一区二区三区 | 国产婷婷在线观看| 最近中文字幕第一页| 欧美日韩99| 亚洲综合中文字幕在线| 69免费视频| 欧美日韩国产大片| 免费精品国产自产拍在| 国产在线视频一区二区| 欧美日韩中文字幕视频| 在线黄色国产电影| 日韩精品大片| 视频一区二区国产| 国产在线拍偷自揄拍精品| 国产h片在线观看| 欧美日韩精品在线播放| 国产视频1区2区| 国产91欧美| 国产香蕉免费精品视频| 国产久卡久卡久卡久卡视频精品| 国产欧美日韩亚洲| 亚洲va中文字幕| av三级在线播放| 91精品在线视频观看| 在线观看区一区二| 久久精品网站免费观看| 一区二区三区在线免费| 欧美一级免费在线观看| 日韩精品a在线观看91| 精品综合久久久久| 亚洲欧洲日韩在线| 亚洲天堂国产视频| 亚洲二区自拍| 亚洲欧洲综合另类| 天堂在线中文资源| 人妻一区二区三区免费| 欧美三级中文字幕在线观看| 在线视频你懂得一区| 天堂在线中文资源| 人妻一区二区三区免费| 在线精品日韩| 欧美日韩久久久| 欧美大片在线观看一区| 精品日本视频| 久久精品一二三| 午夜av一区二区| 欧美不卡视频一区| 日韩欧美在线中文字幕| 色综合天天性综合| 日韩手机在线观看视频| 91精品久久久久| 日韩久久精品视频| 精品国产免费观看一区| 国产wwww| 成人福利一区| 亚洲高清免费一级二级三级| 国产精品一区二区三区免费观看| 91精品国产乱码久久蜜臀| 日韩视频在线免费看| 91麻豆精品国产91久久久使用方法| 在线视频你懂得一区| 日韩欧美中文字幕精品| 精品在线一区二区三区| 日韩视频在线一区| 最新中文字幕在线| 中文字幕最新精品| 韩国v欧美v日本v亚洲| 区日韩二区欧美三区| 亚洲国产91精品在线观看| 欧美日韩久久不卡| 国产最顶级的黄色片在线免费观看| 在线视频国产三级| 欧美日韩国产专区| 日本啊v在线| 欧美日韩国产一区| 一区二区三区视频网站| 中文字幕在线精品| 欧美日韩在线中文字幕| 日韩精品视频在线观看免费| 一级国产黄色片| 国产在线不卡一区| 久久婷婷亚洲| 国产在线观看a| 精品国产91乱高清在线观看| 97国产视频| 欧美日韩精品不卡| 亚洲一区视频在线观看视频| 亚洲羞羞网站| 中文字幕日韩第一页| 欧美日韩国产在线| 精品无人国产偷自产在线| 黄色国产在线| 欧美国产综合视频| 欧美日韩国产页| 亚洲视频在线观看三级| 日韩视频中文| 不卡专区在线| 免费精品国产自产拍观看| 日韩免费精品视频| 视频一区不卡| 欧美日韩国产专区| 亚洲一区在线视频观看| 一区三区二区视频| 中文字幕精品在线| 国产日韩av一区二区| 日韩欧美在线网址| 欧美国产三级| 精品视频在线导航| 国产欧美日韩精品在线| 国产欧美日韩在线视频| 亚洲视频资源在线| 91久久精品视频| 国产在线视频不卡| 欧洲精品二区| 日韩1区在线| 日韩视频一区在线观看| 日韩国产一区三区| 欧美日韩国产在线观看| 欧美中文字幕视频| 日韩欧美国产亚洲| 三级精品视频| 日韩精品在线视频| 日韩中文字幕亚洲| 最近中文av字幕在线中文| 国产日韩1区| 国产成人精品免费久久久久| 男人的天堂网av| 欧美大片在线观看一区| 日韩在线视频一区| 国产高清一级片| 亚洲成av人片| 91最新在线| 91久久精品视频| 中文字幕一区免费| 欧美日韩成人一区| 国产高清在线视频| 欧美日韩中文字幕精品| 精品国产99久久久久久| 欧美日韩亚洲91| 中文在线中文字幕| 国产欧美高清在线| 欧美日韩精品在线| 久久精品卡一| 在线免费播放av| 在线观看91精品国产入口| 91精选在线| 日本熟女一区二区| 91精品在线观看入口| 精品九九久久| 国产欧美日韩91| 欧美一级搡bbbb搡bbbb| 一区二区日韩免费看| 中文字幕无线码一区| 91精品国产综合久久精品app| 视频一区视频二区中文| 中文字幕亚洲高清| 精品中文字幕在线| 91精品国产色综合久久久蜜香臀| 香蕉人人精品| 日韩在线视频一区| 被陌生人带去卫生间啪到腿软| 亚洲免费观看视频| 亚洲免费福利视频| 日韩精品在线观| 国产95在线|亚洲| 综合图区亚洲白拍在线| 亚洲欧洲精品在线| 欧美一卡2卡三卡4卡5免费| 亚洲欧洲在线观看av| 国产高清精品在线| 国产真实乱子伦精品视频| 国产网站欧美日韩免费精品在线观看| 99日韩精品| 午夜国产欧美理论在线播放| va中文字幕| 99视频精品全国免费| 久久麻豆视频| 91精品国产入口| 天堂在线一区二区三区| 国产黄色在线看| 亚洲三级国产| 久久99精品久久久久婷婷| 一区二区三区在线播| 日韩中文字幕久久| 欧美中文字幕在线| 本道综合精品| 日韩欧美中文字幕一区| 国产欧美日韩精品在线| 日韩精品在线中文字幕| 中文字幕亚洲免费| 日韩精品视频中文在线观看| 精品无人国产偷自产在线| 色欧美日韩亚洲| 91精品在线免费| 在线观看国产一级片| 久久av免费| 亚洲高清免费一级二级三级| 亚洲中文字幕一区| 欧美综合精品| 国产精久久久久| 亚洲成年人影院在线| 中文字幕线观看| 久久久精品免费免费| 精品中文字幕视频| 精品一二三四区| 亚洲欧美日本国产专区一区| 日韩不卡av| 国产婷婷色一区二区三区| 亚洲午夜91| 亚洲黄色一区二区| 午夜精品免费视频| 亚洲免费中文字幕| 在线一区二区三区精品|