源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

jquery+php+ajax显示上传进度的多图片上传并生成缩略图代码

  • 时间:2021-12-11 12:43 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:jquery+php+ajax显示上传进度的多图片上传并生成缩略图代码
本例用到其他2个php class.upload.php和 functions.php还有css和js以及img文件 完整实例代码点击此处[url=http://xiazai.jb51.net/201410/yuanma/jq-php-ajax-pic-codes(jb51.net).rar]本站下载[/url]。 效果图如下: [img]http://files.jb51.net/file_images/article/201410/20141015134658306.jpg?2014915134714[/img] 实现代码如下: JavaScript代码如下:
[url=javascript:;]                         '</div>');                       $('#remove_'+file.id).click(function(e) {                         uploader.removeFile(file)                         $('#'+file.id).hide('slow', function() { ('#'+file.id).remove(); });                     });                 });                   up.refresh();                 $('#filelist').animate({scrollTop: $('#filelist').attr("scrollHeight")}, 1500);             });               uploader.bind('UploadProgress', function(up, file) {                 $('#status_' + file.id).html(file.percent + "%");                     if(file.percent == 100) {                         $('#' + file.id).block({                             message: '',                             css: {                                 border: 'none',                                 backgroundColor: 'none'                             },                             overlayCSS: {                                 backgroundColor: '#fff',                                 opacity: '0.7',                                 cursor: 'wait'                             }                         });                     }                 $('#percent').width(uploader.total.percent+"%");                 $('#upRate').text(Math.ceil(uploader.total.bytesPerSec/1024)+" kb/sec");             });               uploader.bind('FileUploaded', function(up, file, response) {                 var input = $("#uploaded_photos");                 var data = response.response;                 var details = data.split(',');                     if(details[0] == 'success') {                         var photo_html = '<div class="padding-10 hm-photo clearfix"><a href="../upload/source/'+details[4]+'" target="_blank"><img src="../upload/small/'+details[4]+'"></a><p class="small-text light-text">'+details[1]+'</p><abbr class="time small-text" title="'+details[2]+'"></abbr></div>';                         input.val(input.val() + details[1] + ":");                     } else {                         var photo_html = '<div class="clearfix">'+details[1]+'</div>';                     }                 $('.side-pane').prepend(photo_html);                 $('.time').timeago();             });               uploader.bind('UploadComplete', function(up, files) {                 $('#upload_info').hide();                 $('#filelist').unblock({                     onUnblock: function () {                         $('#filelist_header').hide();                         $('#filelist').html('<div style="margin-top: 180px; text-align: center;"><strong>ok</strong><br/>All photos have been uploaded.</div>');                     }                 });             });           // ]]>          </script>
上面2个js都放在index.php里面 XML/HTML代码如下:
<div id="uploader" class="main-pane">              <div id="filelist_header" class="clearfix">                  <div class="filename">Name</div>                  <div class="filesize">Size</div>                  <div class="filestatus">Status</div>                  <div class="filedel"></div>                  <div></div>              </div>                <div id="filelist"></div>                <div class="action-btns">                  <a id="pickfiles" class="login-button btn">Select files to upload</a>                  <a href="javascript:;" id="upload_button" class="login-button upload hide">Upload</a>              </div>                <center>                  <div id="upload_info">                      <div id="upload_info_inner">                          <div class="progressbg">                              <div id="percent" class="progress"></div>                          </div>                      </div>                        <div id="unknown">                          <div id="time2go"></div>                          <div id="upRate"></div>                      </div>                  </div>              </center>                <form method="POST" action="process.php" id="processupload">                  <input type="hidden" name="uploaded_photos" id="uploaded_photos" />                  <input type="hidden" name="fkey" value="<?php echo $fkey; ?>" />              </form>          </div>
upload.php页面代码如下:
[u]复制代码[/u] 代码如下:
<?php  /*     @@ Including the functions.php for using the necessary functions. */  include('functions.php');    /*     @@ This is the file upload class which does all the uploading work. */  include('class.upload.php');    if(isset($_FILES["file"])) {      /*         @@ Generating unique name for the photo.     */      $time = time();      $rand_1 = rand(999, 999999);      $rand_2 = rand(999999, 999999999);      $rand_3 = rand();      $unique_value = $time.'_'.$rand_1.'_'.$rand_2.'_'.$rand_3;        /*         @@ Folder creation for each and every day. This ensures performance even with millions of images.     */      $folder = date('zY');          if(substr($folder, 0) == 0) {              $folder = '367'.date('Y');          }        /*         @@ This folder is for the source image files.     */      $pfolder = '../upload/source/';           if(!is_dir($pfolder)) {              mkdir($pfolder, 0755);          }        /*         @@ This folder is for the image files with 120x120 dimensions.     */      $tfolder = '../upload/small/';          if(!is_dir($tfolder)) {              mkdir($tfolder, 0755);          }        /*         @@ Assigning the upload file to the upload class for all the processing.     */      $handle = new Upload($_FILES["file"]);          if($handle->uploaded) {              $extension = $handle->file_src_name_ext;              $mime = $handle->file_src_mime;                    if(($mime == 'image/gif') || ($mime == 'image/jpg') || ($mime == 'image/png') || ($mime == 'image/bmp') || ($mime == 'image/pjpeg') | ($mime == 'image/jpeg')) {                      /*                         @@ Check if the uploaded filetype is an image or not.                     */                      if(($extension == 'gif') || ($extension == 'jpg') || ($extension == 'jpeg') || ($extension == 'png') || ($extension == 'bmp') || ($extension == 'pjpeg')) {                          if($handle->image_src_x > 500) {                                  /*                                     @@ Check if the filesize is smaller than 10 MB. 10 MB = 10485760 bytes.                                 */                              if($handle->file_src_size < 10485760) {                                  /*                                     @@ Getting the actual file name (with and without extension) and sanitizing it for inserting in the database.                                 */                                  $real_name = clean_input($handle->file_src_name);                                  $body_name = clean_input($handle->file_src_name_body);                                    $handle->file_new_name_body = $unique_value.'_'.$body_name;                                  $handle->Process($pfolder);                                    $handle->image_resize = true;                                  $handle->image_ratio_crop = 'T';                                  $handle->image_y = 120;                                  $handle->image_x = 120;                                  $handle->file_new_name_body = $unique_value.'_'.$body_name;                                  $handle->Process($tfolder);                                        if($handle->processed) {                                          $actual_name = $handle->file_dst_name;                                          $size = ceil($handle->file_src_size / 1024);                                            ## Sending photo details back to the uploader.                                          $date = date("c", $time);                                                ## Reducing the length of real name if it exceeds 50 characters.                                              if(strlen($real_name) > 50) {                                                  $real_name = substr($real_name, 0, 50).'..';                                              }                                              echo 'success,'.$real_name.','.$date.','.$folder.','.$actual_name;                                      } else {                                          echo 'error,<div class="alert alert-error"><strong>Upload Error</strong><br/>There was an error uploading the photo.</div>';                                      }                              } else {                                  echo 'error,<div class="alert alert-error"><strong>Upload Error</strong><br/>The photo is bigger than the allowed upload size of <strong>10MB</strong>.</div>';                              }                          } else {                              echo 'error,<div class="alert alert-error"><strong>Upload Error</strong><br/>You are trying to upload a photo with smaller dimensions.</div>';                          }                      } else {                          echo 'error,<div class="alert alert-error"><strong>Upload Error</strong><br/>Only photo uploads are allowed.</div>';                      }                  } else {                      echo 'error,<div class="alert alert-error"><strong>Upload Error</strong><br/>Only photo uploads are allowed.</div>';                  }          } else {              echo 'error,<div class="alert alert-error"><strong>Upload Error</strong><br/>An upload error occured.</div>';                     }      /*         @@ Return the json response to the script.     */      $handle->Clean();  } else {      echo 'error,<div class="alert alert-error"><strong>Upload Error</strong><br/>An upload error occured.</div>';  }
希望本文所述对大家的PHP+jQuery程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部