亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

PHP+Ajax圖片上傳并且無刷新生成縮略圖預覽

2024-09-04 11:45:13
字體:
來源:轉載
供稿:網友

圖片上傳我們介紹過的教程非常的多了,今天我整理的這篇ajax圖片上傳主要有一個上傳之后自動生成小圖的功能并且還返回預覽效果,下面我們來看看這段代碼.

XML/HTML Code

  1. <div id="upload-wrapper">  <div align="center">    <form action="processupload.php" method="post" enctype="multipart/form-data" id="MyUploadForm">  <input name="ImageFile" id="imageInput" type="file" />  <input type="submit"  id="submit-btn" value="Upload" />  <img src="images/ajax-loader.gif" id="loading-img" style="display:none;" alt="Please Wait"/>  </form>  <div id="output"></div>  </div>   
  2. /div> 

JavaScript Code

  1. <script type="text/<a href="/js_a/js.html" target="_blank">javascript</a>">   
  2. $(document).ready(function() {    
  3.     var options = {    
  4.             target:   '#output',   // target element(s) to be updated with server response    
  5.             beforeSubmit:  beforeSubmit,  // pre-submit callback    
  6.             success:       afterSuccess,  // post-submit callback    
  7.             resetForm: true        // reset the form after successful submit    
  8.         };    
  9.             
  10.      $('#MyUploadForm').submit(function() {    
  11.             $(this).ajaxSubmit(options);               
  12.             // always return false to prevent standard browser submit and page navigation    
  13.             return false;    
  14.         });    
  15. });    
  16.     
  17. function afterSuccess()   
  18. {   
  19.     $('#submit-btn').show(); //hide submit button   
  20.     $('#loading-img').hide(); //hide submit button   
  21.     
  22. }   
  23.     
  24. //function to check file size before uploading.   
  25. function beforeSubmit(){   
  26.     //check whether browser fully supports all File API   
  27.    if (window.File && window.FileReader && window.FileList && window.Blob)   
  28.     {   
  29.             
  30.         if( !$('#imageInput').val()) //check empty input filed   
  31.         {   
  32.             $("#output").html("Are you kidding me?");   
  33.             return false   
  34.         }   
  35.             
  36.         var fsize = $('#imageInput')[0].files[0].size; //get file size   
  37.         var ftype = $('#imageInput')[0].files[0].type; // get file type   
  38.             
  39.     
  40.         //allow only valid image file types    
  41.         switch(ftype)   
  42.         {   
  43.             case 'image/png'case 'image/gif'case 'image/jpeg'case 'image/pjpeg':   
  44.                 break;   
  45.             default:   
  46.                 $("#output").html("<b>"+ftype+"</b> Unsupported file type!");   
  47.                 return false   
  48.         }   
  49.             
  50.         //Allowed file size is less than 1 MB (1048576)   
  51.         if(fsize>1048576)    
  52.         {   
  53.             $("#output").html("<b>"+bytesToSize(fsize) +"</b> Too big Image file! <br />Please reduce the size of your photo using an image editor.");   
  54.             return false   
  55.         }   
  56.                     
  57.         $('#submit-btn').hide(); //hide submit button   
  58.         $('#loading-img').show(); //hide submit button   
  59.         $("#output").html("");     
  60.     }   
  61.     else   
  62.     {   
  63.         //Output error to older unsupported browsers that doesn't support HTML5 File API   
  64.         $("#output").html("Please upgrade your browser, because your current browser lacks some new features we need!");   
  65.         return false;   
  66.     }   
  67. }   
  68.     
  69. //function to format bites bit.ly/19yoIPO   
  70. function bytesToSize(bytes) {   
  71.    var sizes = ['Bytes''KB''MB''GB''TB'];  
  72.    if (bytes == 0) return '0 Bytes';  
  73.    var i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)));  
  74.    return Math.round(bytes / Math.pow(1024, i), 2) + ' ' + sizes[i];   
  75. }   
  76.     
  77. </script> 

processupload.php

PHP Code

  1. <?php   
  2. if(isset($_POST))   
  3. {   
  4.     ############ Edit settings ##############   
  5.     $ThumbSquareSize        = 200; //Thumbnail will be 200x200   
  6.     $BigImageMaxSize        = 500; //Image Maximum height or width   
  7.     $ThumbPrefix            = "thumb_"//Normal thumb Prefix   
  8.     $DestinationDirectory   = '../upload/'//specify upload directory ends with / (slash)   
  9.     $Quality                = 90; //jpeg quality   
  10.     ##########################################   
  11.         
  12.     //check if this is an ajax <a href="/tags.php/request/" target="_blank">request</a>   
  13.     if (!isset($_SERVER['HTTP_X_REQUESTED_WITH'])){   
  14.         die();   
  15.     }   
  16.         
  17.     // check $_FILES['ImageFile'] not empty   
  18.     if(!isset($_FILES['ImageFile']) || !is_uploaded_file($_FILES['ImageFile']['tmp_name']))   
  19.     {   
  20.             die('Something wrong with uploaded file, something missing!'); // output error when above checks fail.   
  21.     }   
  22.         
  23.     // Random number will be added after image name   
  24.     $RandomNumber   = rand(0, 9999999999);    
  25.     
  26.     $ImageName      = str_replace(' ','-',strtolower($_FILES['ImageFile']['name'])); //get image name   
  27.     $ImageSize      = $_FILES['ImageFile']['size']; // get original image size   
  28.     $TempSrc        = $_FILES['ImageFile']['tmp_name']; // Temp name of image file stored in PHP tmp folder   
  29.     $ImageType      = $_FILES['ImageFile']['type']; //get file type, returns "image/png", image/jpeg, text/plain etc.   
  30.     
  31.     //Let's check allowed $ImageType, we use PHP SWITCH statement here   
  32.     switch(strtolower($ImageType))   
  33.     {   
  34.         case 'image/png':  
  35.             //Create a new image from file   
  36.             $CreatedImage =  imagecreatefrompng($_FILES['ImageFile']['tmp_name']);  
  37.             break;  
  38.         case 'image/gif':  
  39.             $CreatedImage =  imagecreatefromgif($_FILES['ImageFile']['tmp_name']);  
  40.             break;            
  41.         case 'image/jpeg':  
  42.         case 'image/pjpeg':  
  43.             $CreatedImage = imagecreatefromjpeg($_FILES['ImageFile']['tmp_name']);  
  44.             break;  
  45.         default:  
  46.             die('Unsupported File!'); //output error and exit  
  47.     }  
  48.        
  49.     //PHP getimagesize() function returns height/width from image file stored in PHP tmp folder.  
  50.     //Get first two values from image, width and height.   
  51.     //list assign svalues to $CurWidth,$CurHeight  
  52.     list($CurWidth,$CurHeight)=getimagesize($TempSrc);  
  53.        
  54.     //Get file extension from Image name, this will be added after random name  
  55.     $ImageExt = <a href="/tags.php/substr/" target="_blank">substr</a>($ImageNamestrrpos($ImageName'.'));  
  56.     $ImageExt = str_replace('.','',$ImageExt);  
  57.        
  58.     //remove extension from filename  
  59.     $ImageName      = preg_replace("//.[^./s]{3,4}$/"""$ImageName);   
  60.        
  61.     //Construct a new name with random number and extension.  
  62.     $NewImageName = $ImageName.'-'.$RandomNumber.'.'.$ImageExt;  
  63.        
  64.     //set the Destination Image  
  65.     $thumb_DestRandImageName    = $DestinationDirectory.$ThumbPrefix.$NewImageName//Thumbnail name with destination directory  
  66.     $DestRandImageName          = $DestinationDirectory.$NewImageName// Image with destination directory  
  67.        
  68.     //Resize image to Specified Size by calling resizeImage function.  
  69.     if(resizeImage($CurWidth,$CurHeight,$BigImageMaxSize,$DestRandImageName,$CreatedImage,$Quality,$ImageType))  
  70.     {  
  71.         //Create a square Thumbnail right after, this time we are using cropImage() function  
  72.         if(!cropImage($CurWidth,$CurHeight,$ThumbSquareSize,$thumb_DestRandImageName,$CreatedImage,$Quality,$ImageType))  
  73.             {  
  74.                 echo 'Error Creating thumbnail';  
  75.             }  
  76.         /*  
  77.         We have succesfully resized and created thumbnail image  
  78.         We can now output image to user's browser or store information in the database   
  79.         */   
  80.         echo '<table width="100%" border="0" cellpadding="4" cellspacing="0">';   
  81.         echo '<tr>';   
  82.         echo '<td align="center"><img src="../upload/'.$ThumbPrefix.$NewImageName.'" alt="Thumbnail"></td>';   
  83.         echo '</tr><tr>';   
  84.         echo '<td align="center"><img src="../upload/'.$NewImageName.'" alt="Resized Image"></td>';   
  85.         echo '</tr>';   
  86.         echo '</table>';   
  87.     
  88.         /*  
  89.         // Insert info into database table!  
  90.         mysql_query("INSERT INTO myImageTable (ImageName, ThumbName, ImgPath)  
  91.         VALUES ($DestRandImageName, $thumb_DestRandImageName, 'uploads/')");  
  92.         */   
  93.     
  94.     }else{   
  95.         die('Resize Error'); //output error   
  96.     }   
  97. }   
  98.     
  99.     
  100. // This function will proportionally resize image    
  101. function resizeImage($CurWidth,$CurHeight,$MaxSize,$DestFolder,$SrcImage,$Quality,$ImageType)   
  102. {   
  103.     //Check Image size is not 0   
  104.     if($CurWidth <= 0 || $CurHeight <= 0)    
  105.     {   
  106.         return false;   
  107.     }   
  108.         
  109.     //Construct a proportional size of new image   
  110.     $ImageScale         = min($MaxSize/$CurWidth$MaxSize/$CurHeight);    
  111.     $NewWidth           = ceil($ImageScale*$CurWidth);   
  112.     $NewHeight          = ceil($ImageScale*$CurHeight);   
  113.     $NewCanves          = imagecreatetruecolor($NewWidth$NewHeight);   
  114.         
  115.     // Resize Image   
  116.     if(imagecopyresampled($NewCanves$SrcImage,0, 0, 0, 0, $NewWidth$NewHeight$CurWidth$CurHeight))   
  117.     {   
  118.         switch(strtolower($ImageType))   
  119.         {   
  120.             case 'image/png':   
  121.                 imagepng($NewCanves,$DestFolder);   
  122.                 break;   
  123.             case 'image/gif':   
  124.                 imagegif($NewCanves,$DestFolder);   
  125.                 break;             
  126.             case 'image/jpeg':   
  127.             case 'image/pjpeg':   
  128.                 imagejpeg($NewCanves,$DestFolder,$Quality);   
  129.                 break;   
  130.             default:   
  131.                 return false;   
  132.         }   
  133.     //Destroy image, frees memory      
  134.     if(is_resource($NewCanves)) {imagedestroy($NewCanves);}    
  135.     return true;   
  136.     }   
  137.     
  138. }   
  139.     
  140. //This function cor<a href="/fw/photo.html" target="_blank">ps</a> image to create exact square images, no matter what its original size!   
  141. function cropImage($CurWidth,$CurHeight,$iSize,$DestFolder,$SrcImage,$Quality,$ImageType)   
  142. {       
  143.     //Check Image size is not 0   
  144.     if($CurWidth <= 0 || $CurHeight <= 0)    
  145.     {   
  146.         return false;   
  147.     }   
  148.         
  149.     //abeautifulsite.net has excellent article about "Cropping an Image to Make Square bit.ly/1gTwXW9   
  150.     if($CurWidth>$CurHeight)   
  151.     {   
  152.         $y_offset = 0;   
  153.         $x_offset = ($CurWidth - $CurHeight) / 2;   
  154.         $square_size    = $CurWidth - ($x_offset * 2);   
  155.     }else{   
  156.         $x_offset = 0;   
  157.         $y_offset = ($CurHeight - $CurWidth) / 2;   
  158.         $square_size = $CurHeight - ($y_offset * 2);   
  159.     }   
  160.         
  161.     $NewCanves  = imagecreatetruecolor($iSize$iSize);    
  162.     if(imagecopyresampled($NewCanves$SrcImage,0, 0, $x_offset$y_offset$iSize$iSize$square_size$square_size))   
  163.     {   
  164.         switch(strtolower($ImageType))   
  165.         {   
  166.             case 'image/png':   
  167.                 imagepng($NewCanves,$DestFolder);   
  168.                 break;   
  169.             case 'image/gif':   
  170.                 imagegif($NewCanves,$DestFolder);   
  171.                 break;             
  172.             case 'image/jpeg':   
  173.             case 'image/pjpeg':   
  174.                 imagejpeg($NewCanves,$DestFolder,$Quality);   
  175.                 break;  //Vevb.com 
  176.             default:   
  177.                 return false;   
  178.         }   
  179.     //Destroy image, frees memory      
  180.     if(is_resource($NewCanves)) {imagedestroy($NewCanves);}    
  181.     return true;   
  182.     
  183.     }   
  184.           

以上就是我們要介紹的ajax無刷新圖片上傳功能了,其實就是通過異步模式提交給php然后由php上傳圖片并且生成小圖返回給指定的id的htm元素模塊即可.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产亚洲欧美aaaa| 久久精品国产清自在天天线| 中文字幕在线视频日韩| 国产亚洲精品激情久久| 成人免费激情视频| 91高清视频在线免费观看| 亚洲精品av在线| 国产精品一区二区三区成人| 超碰日本道色综合久久综合| 韩国视频理论视频久久| 国外视频精品毛片| 国产精品久久久久久久久久东京| 国产精品毛片a∨一区二区三区|国| 亚洲国产精品大全| 最近2019中文免费高清视频观看www99| 国产色综合天天综合网| www日韩中文字幕在线看| 国产一区二区三区日韩欧美| 热re91久久精品国99热蜜臀| 精品久久久久久亚洲精品| 欧美久久久精品| 一个色综合导航| 久久精品精品电影网| 精品网站999www| 久久亚洲综合国产精品99麻豆精品福利| 国产中文字幕日韩| 黄色一区二区在线观看| 亚洲免费成人av电影| 国产综合在线视频| 欧美亚洲另类视频| 国产精品亚洲综合天堂夜夜| 亚洲国产成人久久综合| 中文字幕久久亚洲| 亚洲精品美女久久久久| 久久91亚洲精品中文字幕奶水| 久久天天躁夜夜躁狠狠躁2022| 国产在线观看91精品一区| 亚洲毛茸茸少妇高潮呻吟| 欧美最顶级的aⅴ艳星| 6080yy精品一区二区三区| 亚洲经典中文字幕| 91精品视频在线| 色婷婷亚洲mv天堂mv在影片| 久久久久久伊人| 日韩黄色高清视频| 日韩视频在线免费| 国产精品日韩在线播放| 精品视频在线播放免| 国产在线播放91| 亚洲欧美一区二区激情| 国产日韩在线看| 久久精品视频99| 亚洲中国色老太| 日韩av电影在线播放| 欧美性做爰毛片| 欧美性生交xxxxxdddd| 亚洲精品黄网在线观看| 91av网站在线播放| 欧美日韩中文字幕日韩欧美| 日韩亚洲国产中文字幕| 亚洲裸体xxxx| 亚洲人成在线播放| 伊人一区二区三区久久精品| 亚洲精品免费一区二区三区| 97碰碰碰免费色视频| 亚洲国产精品成人精品| 日韩av第一页| 日韩成人在线观看| 国产精品爽爽爽爽爽爽在线观看| 精品国产依人香蕉在线精品| 亚洲色图25p| 日韩中文字幕国产精品| 一本大道亚洲视频| 成人妇女淫片aaaa视频| 日韩免费观看在线观看| 欧美一性一乱一交一视频| 中文字幕久久精品| 亚洲精品一区二区在线| 日韩激情av在线免费观看| 国产欧美日韩丝袜精品一区| 成人性生交大片免费看视频直播| 欧美黄色片在线观看| 亚洲欧美在线播放| 国产免费一区二区三区香蕉精| 日韩欧美在线视频免费观看| 日韩精品视频在线| 亚洲成人av在线播放| 亚洲黄页视频免费观看| 日本精品中文字幕| 国产精品h在线观看| 夜夜狂射影院欧美极品| 日本最新高清不卡中文字幕| 日韩美女免费观看| 日韩av在线免费播放| 亚洲石原莉奈一区二区在线观看| 国语自产精品视频在线看抢先版图片| 成人福利网站在线观看| 亚洲跨种族黑人xxx| 久久久久中文字幕2018| 一区二区三区四区在线观看视频| 欧美大肥婆大肥bbbbb| 欧美日韩性视频在线| 亚洲电影免费在线观看| 国模视频一区二区三区| 国产精品高精视频免费| 日韩精品有码在线观看| 亚洲成人1234| 日韩的一区二区| 国产精品视频地址| 欧美www在线| 亚洲成人三级在线| 国产精品视频播放| 国产精品久久久一区| 伊人男人综合视频网| 欧美日韩免费看| 亚洲黄色av网站| 精品亚洲国产成av人片传媒| 国产精品久久久久久av下载红粉| 亚洲视频777| 91精品国产自产在线观看永久| 欧美午夜性色大片在线观看| 欧美激情在线视频二区| 萌白酱国产一区二区| 5278欧美一区二区三区| 中日韩午夜理伦电影免费| 亚洲精品小视频在线观看| 国产精品久久中文| 亚洲国产欧美日韩精品| 日韩在线视频网| 国产亚洲精品美女| 亚洲免费中文字幕| 亚洲视频在线视频| 国产91色在线|| 欧美风情在线观看| 日韩av一卡二卡| 国产精品揄拍500视频| 国产丝袜一区二区三区免费视频| 国产视频亚洲精品| 青青青国产精品一区二区| 亚洲一区二区日本| 国内精品美女av在线播放| 欧美中文字幕精品| 欧美精品第一页在线播放| 国产精品视频区1| 国产精品久久久久久久久借妻| www.久久草.com| 国产精品美女免费视频| 亚洲精品国产福利| 久久在线精品视频| 亚洲精品国产精品国自产观看浪潮| 久久久999国产精品| 欧美性xxxx在线播放| 精品国内自产拍在线观看| 日韩大片在线观看视频| 国产一区二区欧美日韩| 日产精品久久久一区二区福利| 国产视频精品久久久| 日韩欧美视频一区二区三区| 色偷偷综合社区| 欧美日韩国产页| 中文字幕精品av| 亚洲欧美国产精品专区久久| 2019中文在线观看| 国模视频一区二区|