欧美三区四区_av先锋影音资源站_亚洲第一论坛sis_影音先锋2020色资源网_亚洲精品社区_在线免费观看av网站_国产一区二区伦理_亚洲欧美视频一区二区_99视频精品全部免费在线_精精国产xxxx视频在线

html5 拖拽上傳圖片實(shí)例演示_HTML5教程

編輯Tag賺U幣

推薦:突襲HTML5之Javascript API擴(kuò)展2—地理信息服務(wù)及地理位置API學(xué)習(xí)
在HTML5中,加入了新的地理位置API用來確定和分享地理位置。這一類服務(wù)就是企業(yè)利用某點(diǎn)(例如用戶所在的位置)坐標(biāo)附近的區(qū)域提供服務(wù)的信息,比如常見的地圖相關(guān)服務(wù),本文詳細(xì)介紹下,感興趣的朋友可以了解下,或許對(duì)你有所幫助

因?yàn)闃?biāo)題寫的是實(shí)例,所以本次就不做講解了,因?yàn)檫@個(gè)實(shí)例我也算是東拼西湊整出來的,參考了大概5、6款拖拽上傳的插件和demo,然后把其中好的地方挑出來,最后就成了這么一個(gè)實(shí)例,一起來看下吧(地址不能保證長久有效,如果失效請(qǐng)?jiān)谖恼伦詈簏c(diǎn)擊demo下載):
 
界面樣式我是參考了一個(gè)國外的相冊(cè)網(wǎng)站,改動(dòng)不大,只是把鳥語轉(zhuǎn)換成中文,以及上傳時(shí)的樣式也進(jìn)行了改動(dòng),之所以選這個(gè)的原因就是,我很容易做擴(kuò)展,它支持3種方式添加圖片,一種拖拽上傳,一種常規(guī)的選擇文件上傳,另外的就是添加網(wǎng)絡(luò)圖片。它很巧妙的把三種上傳模式整合到了一起,而且你可以用IE瀏覽器瀏覽下,如果不支持HTML5,是沒有拖拽上傳圖片的提示的,如圖:
 
拖拽上傳最重要的就是js部分的代碼,它實(shí)現(xiàn)了70%的功能,另外30%僅僅是把圖片信息提交到后臺(tái),然后做對(duì)應(yīng)的處理,比如壓縮啊,裁剪啊云云。所以先來看下js實(shí)現(xiàn)代碼吧。

復(fù)制代碼 代碼如下:www.ghpqjb.com

$().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);
});
//功能實(shí)現(xiàn)
$(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');
//檢測(cè)是否是拖拽文件到頁面的操作
if(fileList.length == 0){
$('.dashboard_target_box').removeClass('over');
return;
}
//檢測(cè)文件是不是圖片
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{
//實(shí)例化file reader對(duì)象
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();
}
});

開始我是先判斷瀏覽器類型,因?yàn)閯偛沤榻B過,不同瀏覽器看到的是不同界面。主要實(shí)現(xiàn)代碼是從“功能實(shí)現(xiàn)”開始的,這塊具體為何這樣操作,原理是什么,我就不多說了,大家可以參考下這篇文章:《人人網(wǎng)首頁拖拽上傳詳解(HTML5 Drag&Drop、FileReader API、formdata)》,不過ajax上傳部分的代碼還是有點(diǎn)不一樣的,因?yàn)槿巳四莻(gè)似乎有點(diǎn)麻煩,我就另尋途徑了。
  最后就是上傳部分的PHP代碼了,這里我只是提供個(gè)參考,你可以根據(jù)項(xiàng)目的需求來自己編寫。

復(fù)制代碼 代碼如下:www.ghpqjb.com

$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最終會(huì)返回一個(gè)JSON格式的數(shù)組,我返回的信息就是圖片地址、名稱,還有段img的html代碼,最后在js那邊獲取到j(luò)son數(shù)組并處理,至此,操作結(jié)束。
文章最開始提到,還有點(diǎn)擊選擇文件上傳和網(wǎng)絡(luò)圖片,因?yàn)檫@2個(gè)不屬于這次的主題范圍內(nèi),就不說了。況且這2個(gè)功能實(shí)現(xiàn)起來都不麻煩。
demo下載

分享:html5新增的屬性和廢除的屬性簡要概述
HTML5中,在新增加和廢除很多元素的同時(shí),也增加和廢除了很多屬性比如表單相關(guān)的屬性/鏈接相關(guān)屬性是新增的而HTML4中一些屬性就被廢除掉了,感興趣的你可以了解下,或許對(duì)你學(xué)習(xí)html5有所幫助

來源:未知//所屬分類:HTML5教程/更新時(shí)間:2013-04-22
相關(guān)HTML5教程
久久精品免视看| 香蕉视频一区二区三区| 国产精品一区二区不卡| 亚洲成人精品久久| 欧美视频1区| 日日噜噜夜夜狠狠久久波多野| 在线精品国产亚洲| 久久久精品国产免费观看同学| 中文字幕av一区二区| 裸体裸乳免费看| 国产 欧美 日韩 在线| 九九久久电影| 樱桃视频在线观看一区| 欧洲精品在线视频| 国内av免费观看| 欧美一级大片| 国产福利精品一区| 亚洲天堂av电影| 中文字幕色呦呦| 五月天激情四射| 欧美区一区二| 欧美日韩一区二区在线观看| 国产精品播放| 精品无码一区二区三区蜜臀| 免费精品国产| 亚洲国产毛片aaaaa无费看| 国产精品电影观看| 国产美女视频免费观看下载软件| 99久久这里有精品| 久久久国产一区二区三区四区小说| 久久久精品中文字幕| 久久婷婷国产精品| 人妻丰满熟妇av无码区hd| 麻豆91在线观看| 亚洲欧美日韩图片| 黄色大片中文字幕| 99久久久无码国产精品免费| 老司机精品视频导航| 亚洲奶大毛多的老太婆| 国产精品网站免费| 精品久久久无码中文字幕| 美美哒免费高清在线观看视频一区二区| 亚洲国产女人aaa毛片在线| 超级碰在线观看| 国产精品久久久久久69| 蜜桃av一区二区三区| 亚洲欧美在线第一页| 欧美大片在线播放| 少妇喷水在线观看| 99riav一区二区三区| 亚州国产精品久久久| 中文字幕在线观看91| 日韩中文字幕| 亚洲一区二区三区国产| yy111111少妇影院日韩夜片| 91视频综合网| 欧美日本一区| 精品免费日韩av| 免费网站永久免费观看| 亚洲黄色在线免费观看| 成人av网站在线观看| 国内精品久久久久影院优 | xxxxxx欧美| xfplay精品久久| 欧美在线亚洲在线| jizz中文字幕| 五月天综合网站| 欧美一区三区四区| 日本黄色片一级片| 熟妇人妻系列aⅴ无码专区友真希| 国产99精品国产| 97视频在线观看视频免费视频| 色综合久久五月| 亚洲日产av中文字幕| 色伊人久久综合中文字幕| 日本不卡一区二区三区视频| 国产偷人爽久久久久久老妇app| 免费在线一区观看| 久99九色视频在线观看| 亚洲欧美在线不卡| 欧美精品久久久久久| 欧美群妇大交群的观看方式 | 亚洲第一黄网| 亚洲欧洲av一区二区| 在线免费视频一区| 99这里只有精品视频| 欧美午夜影院在线视频| 亚洲欧美电影在线观看| av中文字幕播放| 91日韩在线专区| 国产日本欧美在线观看| 青娱乐av在线| 日韩国产成人精品| 蜜臀久久99精品久久久无需会员| 欧美在线一级片| 四虎成人精品永久免费av九九| 精品日韩一区二区三区免费视频| 337p粉嫩大胆噜噜噜鲁| 99久久99九九99九九九| 日韩欧美黄色动漫| 黄色一级片网址| 亚洲精品一区| 亚洲另类色综合网站| 精品蜜桃一区二区三区| 91一区二区视频| 91网址在线看| 亚洲一区二区三| 免费污污视频在线观看| 国产成a人亚洲精品| 国产精品嫩草影院久久久| 久久免费视频99| 久草精品在线观看| 51精品国产黑色丝袜高跟鞋 | 欧美 日韩 国产 一区| 日韩精品视频在线| 日本美女久久久| 精品99久久| 亚洲国产精品福利| 激情成人在线观看| 久久国产电影| 亚洲视频777| 中文字幕人妻一区二区三区 | 国产一区国产精品| 国产精品一级视频| 国产午夜精品一区二区三区嫩草| 国产精品xxxx| 精品乱子伦一区二区| 国产精品国产自产拍高清av| 欧美 日韩 国产在线| 亚洲精品一区二区三区不卡| 亚洲欧美日韩综合aⅴ视频| 天堂精品视频| 三上悠亚亚洲一区| 欧美色播在线播放| 欧美三级在线观看视频| 久久久亚洲欧洲日产| 欧美一区二区私人影院日本| 91国内在线播放| 日韩免费看片| 中文字幕欧美日韩精品| 人妻精品久久久久中文| 丝袜美腿亚洲色图| 庆余年2免费日韩剧观看大牛| 久久久久久久九九九九| 国产很黄免费观看久久| 91精品入口蜜桃| 国产三级伦理片| 亚洲码国产岛国毛片在线| 中国人体摄影一区二区三区| 粉嫩av一区二区三区四区五区| 欧美在线视频你懂得| 熟妇人妻无乱码中文字幕真矢织江| 神马久久av| 亚洲三级 欧美三级| 一级片视频免费看| 日韩黄色在线观看| 国产精品成av人在线视午夜片| 日本免费在线观看视频| 国产视频不卡一区| 亚洲欧美久久久久一区二区三区| 黄色日韩网站| 欧美裸体bbwbbwbbw| 日本一二三区在线| 激情成人综合| 91高清视频免费| 欧美a视频在线观看| 国产人妖乱国产精品人妖| 日韩视频在线播放| 国产电影一区二区| 精品免费99久久| 狠狠人妻久久久久久综合蜜桃| 亚欧美中日韩视频| 国产精品亚洲欧美导航| 国产伦子伦对白视频| 亚洲一区在线视频| 777精品久无码人妻蜜桃| 国产精选一区| 久久躁狠狠躁夜夜爽| 日韩aaaaaa| 欧美国产视频在线| 99re6这里有精品热视频| 日本韩国欧美超级黄在线观看| 亚洲欧美制服另类日韩| 成年人视频软件| 高清不卡一区二区在线| 欧美亚州在线观看| 久久九九精品视频| 日韩av一区在线观看| 亚洲第一综合网| 国产91对白在线观看九色| 久久精品二区| 四虎影视精品永久在线观看| 精品免费日韩av| 亚洲a v网站| 国产98色在线|日韩| 欧美男人的天堂| 蜜桃在线一区| 国产亚洲在线播放| 久草视频中文在线| 中文字幕av一区二区三区免费看 | 亚洲色图在线观看| 九九热国产精品视频| 久久久久久久电影| 久久久久久久久网| 色天天综合网| 97超碰国产精品女人人人爽| 国产一区二区三区在线观看| 欧美日韩国产丝袜另类| 在线一区二区不卡| 天堂一区二区在线| 国产精品高清一区二区三区| 欧美××××黑人××性爽| 欧美成人福利视频| 青青操在线视频观看| 久久久电影一区二区三区| 无码人妻精品一区二区蜜桃网站| 成人毛片在线| 97成人超碰免| 亚洲精品一区二区三区区别| 欧美精品xxxxbbbb| 一级片视频免费看| 久久久久久久综合色一本| 嫩草影院中文字幕| 91精品秘密在线观看| 国产精品久久久久久久久影视| 图片区 小说区 区 亚洲五月| 欧美一区二区美女| 欧美88888| 国产精品久久毛片a| 国产在线观看福利| 一本色道久久综合一区| 国产精品播放| 91精品短视频| 欧美成人第一页| 国产精品日韩无码| 欧美日韩国产精选| 综合 欧美 亚洲日本| 国产欧美精品一区| 密臀av一区二区三区| 狂野欧美性猛交xxxx巴西| 九九九久久久| 美女福利一区| 亚州av一区二区| 欧美一区二区三区激情| 精品剧情v国产在线观看在线| 少妇人妻丰满做爰xxx| 亚洲人精品一区| 337p日本欧洲亚洲大胆张筱雨| 国精产品一区一区三区mba视频| 一本色道久久综合亚洲精品婷婷 | 国产乱人伦精品一区二区| 伊人久久大香线蕉av超碰| 欧美激情xxxxx| 婷婷丁香一区二区三区| 亚洲精品资源美女情侣酒店 | 日韩免费在线观看| 欧美又粗又大又长| 亚洲无线码一区二区三区| 奇米777第四色| 91免费国产视频网站| 日本一极黄色片| 久久成人免费日本黄色| 欧美少妇一区二区三区| 精品91在线| 久久久久久欧美精品色一二三四| 蜜乳av综合| 国产精品久久久久久中文字| 亚洲人成777| 欧美激情中文字幕在线| 午夜影院免费视频| 亚洲午夜小视频| 国产精品久久久久精| 亚洲高清久久久久久| 午夜精品一区二| 欧美久久久久久久久| 久久久精品99| 色偷偷一区二区三区| 亚洲欧美日韩第一页| 亚洲一区二区偷拍精品| 亚洲综合网在线观看| 国产精品女同一区二区三区| 天天色天天干天天色| 91麻豆精品视频| 日本国产一级片| 不卡的av网站| 色多多视频在线播放| 国产成人a级片| 国产av人人夜夜澡人人爽| 国产在线精品国自产拍免费| 国产高清av在线播放| 另类专区欧美蜜桃臀第一页| 国产精品久久久久9999爆乳| 日本欧美久久久久免费播放网| 韩国黄色一级大片| 国产日韩精品视频一区二区三区 | 国产亚洲欧美日韩一区二区| 国产深喉视频一区二区| 精品一区二区三区四区| 国产三级伦理片| 在线播放日韩av| 日韩一级免费视频| 久久精品国产亚洲7777| 91av亚洲| 欧美高清激情视频| 福利精品一区| 热久久免费国产视频| 一区二区精彩视频| 国产精品视频xxx| 希岛爱理av免费一区二区| 97中文在线观看| 99久久www免费| 欧美一区二区三区在线免费观看| 午夜精品剧场| 亚洲一区三区电影在线观看| 亚洲综合国产| 大西瓜av在线| 国产乱码精品1区2区3区| 黑森林精品导航| 91麻豆免费看| 久久福利小视频| 亚洲一区二三区| 欧美特级一级片| 欧美日韩精品一区二区三区四区 | 奇米四色…亚洲| 大陆极品少妇内射aaaaa| 国产成人精品www牛牛影视| 99精品视频国产| 亚洲丝袜另类动漫二区| 日韩欧美黄色网址| 一本久道中文字幕精品亚洲嫩| 久久午夜鲁丝片午夜精品| 91精品国产欧美一区二区成人| 成人黄色三级视频| 91女人视频在线观看| 懂色av中文一区二区三区| 欧美在线视频一区二区三区| 欧美天堂亚洲电影院在线观看| 一区二区成人国产精品| 青娱乐精品在线视频| 黑森林福利视频导航| 91香蕉视频污| 美女又爽又黄视频毛茸茸| 精品久久久久久久久国产字幕| 久久精品国产亚洲av高清色欲| 欧美一级国产精品| av免费观看在线| 欧美大片在线看| 精品国产一区二区三区不卡蜜臂| 97免费资源站| 亚洲欧洲一区二区天堂久久| h无码动漫在线观看| 国产.欧美.日韩| 无码国产精品一区二区免费式直播| 亚洲国产精品欧美一二99| 国产中文字幕免费| 亚洲成人av在线播放| 天堂av2024| 国产91亚洲精品| 久久美女视频| 玖玖精品在线视频| 成人综合在线观看| 国产xxxxxxxxx| 欧美在线视频全部完| 91久久久久国产一区二区| 久久亚洲精品中文字幕冲田杏梨| 亚洲精品福利| 好吊色欧美一区二区三区四区 | 特黄视频在线观看| 国产成人精品电影久久久| 999成人精品视频线3| 国产一级不卡视频| www激情久久| 国产又粗又猛又爽又黄的视频小说| 欧美日韩一区二区三区免费看 | 国产成人在线视频免费播放| 手机免费看av片| 一本大道av伊人久久综合| 888奇米影视| 高清视频欧美一级| 国产日产精品一区二区三区四区的观看方式 | 免费av在线一区二区| 久久99在线观看| zjzjzjzjzj亚洲女人| 日本高清不卡视频| 国产手机视频在线| 欧美亚洲第一区| 欧美一区高清| 男人和女人啪啪网站| 中文字幕亚洲欧美在线不卡| 久久精品国产亚洲av麻豆色欲| 一区二区在线免费视频| 亚洲国产视频二区| 欧美一区二区高清在线观看| 国产制服丝袜一区| 爱爱的免费视频| 日韩欧美区一区二| 亚洲成人一区在线观看| 国产精品一区二区三区观看| 男人操女人的视频在线观看欧美| www.四虎精品|