欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP+Ajax無(wú)刷新帶進(jìn)度條圖片上傳示例

 更新時(shí)間:2017年02月08日 14:41:38   作者:碼農(nóng)一號(hào)  
本篇文章主要介紹了PHP+Ajax無(wú)刷新帶進(jìn)度條圖片上傳示例,詳細(xì)的整理PHP無(wú)刷新上傳圖片,并且要帶進(jìn)度條的代碼,有需要的可以了解一下。

項(xiàng)目需求:1.PHP+Ajax無(wú)刷新帶進(jìn)度條圖片上傳,2.帶進(jìn)度條。所需插件:jquery.js,jquery.form.js。

最近在做一個(gè)手機(jī)web項(xiàng)目,需要用到Ajax上傳功圖片能,項(xiàng)目要求PHP無(wú)刷新上傳圖片,并且要帶進(jìn)度條,下面就來(lái)講一下我的實(shí)現(xiàn)方法,先看效果圖

本示例需要使用的是jquery.js,jquery.form.js,demo里面包含有,你可以在文章下方進(jìn)行下載。

第一步,建立前端頁(yè)面index.html

此段是前端展示內(nèi)容,這里需要說(shuō)明的是由于input:file標(biāo)簽顯示不太美觀,所以我把它隱藏了。而使用一個(gè)a標(biāo)簽.uploadbtn來(lái)調(diào)用file標(biāo)簽的click事件,用來(lái)打開(kāi)并選擇文件。

注意:文件上傳時(shí)form的屬性enctype必須設(shè)置為:multipart/form-data

<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>php-ajax無(wú)刷新上傳(帶進(jìn)度條)demo</title>
<meta name="description" content="" />
<meta name="viewport" content="width=device-width , initial-scale=1.0 , user-scalable=0 , minimum-scale=1.0 , maximum-scale=1.0" />
<script type='text/javascript' src='js/jquery-2.0.3.min.js'></script>
<script type='text/javascript' src='js/jquery.form.js'></script>
<link href="css/style.css" rel="external nofollow" type="text/css" rel="stylesheet"/>
</head>
<body>
<div style="width:500px;margin:10px auto; border:solid 1px #ddd; overflow:hidden; ">
 <form id='myupload' action='upload.php' method='post' enctype='multipart/form-data'>
 <input type="file" id="uploadphoto" name="uploadfile" value="請(qǐng)點(diǎn)擊上傳圖片" style="display:none;" />
 </form>
 <div class="imglist"> </div>
 <p class="res"></p>
 <div class="progress">
 <div class="progress-bar progress-bar-striped"><span class="percent">50%</span></div>
 </div>
 <a href="javascript:void(0);" rel="external nofollow" onclick="uploadphoto.click()" class="uploadbtn">點(diǎn)擊上傳文件</a>
</div>
</body>
</html>

第二步,Ajax提交部分

這部份就是Ajax的提交部份,過(guò)程如下:

  • 在提交開(kāi)始通過(guò)beforeSend回調(diào)函數(shù)設(shè)置進(jìn)度條顯示出來(lái),進(jìn)度條寬度為0%,進(jìn)度值0%;
  • 在上傳過(guò)程中通過(guò)uploadProgress回調(diào)函數(shù)實(shí)時(shí)返回的數(shù)據(jù),更改進(jìn)度條的寬度和進(jìn)度值。
  • 在上傳成功后,通過(guò)success回調(diào)函數(shù)輸出上傳為數(shù)據(jù)信息(圖片名稱,大小,地址等)并把圖片輸出到頁(yè)面上預(yù)覽。
  • 當(dāng)然如果失敗,有error回調(diào)函數(shù)幫你進(jìn)行高度。
<script type="text/javascript">
$(document).ready(function(e) {
 var progress = $(".progress"); 
 var progress_bar = $(".progress-bar");
 var percent = $('.percent');
 $("#uploadphoto").change(function(){
 $("#myupload").ajaxSubmit({ 
 dataType: 'json', //數(shù)據(jù)格式為json 
 beforeSend: function() { //開(kāi)始上傳 
 progress.show();
 var percentVal = '0%';
 progress_bar.width(percentVal);
 percent.html(percentVal);
 }, 
 uploadProgress: function(event, position, total, percentComplete) { 
 var percentVal = percentComplete + '%'; //獲得進(jìn)度 
 progress_bar.width(percentVal); //上傳進(jìn)度條寬度變寬 
 percent.html(percentVal); //顯示上傳進(jìn)度百分比 
 }, 
 success: function(data) {
 
 if(data.status == 1){
 var src = data.url; 
 var attstr= '<img src="'+src+'">'; 
 $(".imglist").append(attstr);
 $(".res").html("上傳圖片"+data.name+"成功,圖片大?。?+data.size+"K,文件地址:"+data.url);
 }else{
 $(".res").html(data.content);
 }
 progress.hide(); 
 }, 
 error:function(xhr){ //上傳失敗 
 alert("上傳失敗"); 
 progress.hide(); 
 } 
 }); 
 });
 
});
</script>

第三步,后端PHP代碼upload.php

后端處理代碼,就是PHP文件上傳,不過(guò)上傳的時(shí)候需要做一些判斷,如文件格式、文件大小等。

注意:我上面ajax返回格式是json,所以在圖片json代碼是一定要正確規(guī)范,否則會(huì)出現(xiàn)上傳不成功的提示。

$picname = $_FILES['uploadfile']['name']; 
 $picsize = $_FILES['uploadfile']['size']; 
 if ($picname != "") { 
 if ($picsize > 2014000) { //限制上傳大小 
 echo '{"status":0,"content":"圖片大小不能超過(guò)2M"}';
 exit; 
 } 
 $type = strstr($picname, '.'); //限制上傳格式 
 if ($type != ".gif" && $type != ".jpg" && $type != "png") {
 echo '{"status":2,"content":"圖片格式不對(duì)!"}';
 exit; 
 }
 $rand = rand(100, 999); 
 $pics = uniqid() . $type; //命名圖片名稱 
 //上傳路徑 
 $pic_path = "images/". $pics; 
 move_uploaded_file($_FILES['uploadfile']['tmp_name'], $pic_path); 
 } 
 $size = round($picsize/1024,2); //轉(zhuǎn)換成kb 
 echo '{"status":1,"name":"'.$picname.'","url":"'.$pic_path.'","size":"'.$size.'","content":"上傳成功"}';

demo下載: php-ajax-upload_jb51.rar

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論