国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP+Ajax實現文件無刷新上傳文件代碼

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

PHP+jQuery Ajax文件上傳實例,因為看到一些朋友詢問如何實現PHP環境下的網頁上傳功能,自己這幾天剛用了jQuery_upload_multiple上傳插件,所以在這里把用法給大家說一下.

要實現基于這個插件的上傳功能,其實挺簡單,需要jquery就行了,另外還有一個上傳文件時的PHP程序,費話不多說,先看下面的HTML,也就是帶有上傳表單,讓用戶選擇上傳文件的頁面:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  2. <html xmlns="http://www.w3.org/1999/xhtml"> 
  3. <head> 
  4. <title>Easy Ajax FormData Upload Multiple Images</title> 
  5. <script type="text/javascript" src="/ajaxjs/jquery-1.6.2.min.js"></script><!--此處可引用你實際路徑的jquery插件--> 
  6. </head> 
  7. <body> 
  8. <style> 
  9.  #feedback{width:1200px;margin:0 auto;} 
  10.  #feedback img{float:left;width:300px;height:300px;} 
  11.  #ZjmainstaySignaturePicture,#addpicContainer{float:left;width: 100%;} 
  12.  #addpicContainer{margin-left:5px;} 
  13.  #ZjmainstaySignaturePicture img{width: 535px;} 
  14.  #addpicContainer img{float: left;} 
  15.  .loading{display:none;background:url("http://f7-preview.awardspace.com/zjmainstay.co.cc/jQueryExample/jquery_upload_image/files/ui-anim_basic_16x16.gif") no-repeat scroll 0 0 transparent;float: left;padding:8px;margin:18px 0 0 18px;} 
  16. </style> 
  17. <div id="addpicContainer"> 
  18.  <!-- 利用multiple="multiple"屬性實現添加多圖功能 --> 
  19.  <!-- position: absolute;left: 10px;top: 5px;只針對本用例將input隱至圖片底下。--> 
  20.  <!-- height:0;width:0;z-index: -1;是為了隱藏input,因為Chrome下不能使用display:none,否則無法添加文件 --> 
  21.  <!-- onclick="getElementById('inputfile').click()" 點擊圖片時則點擊添加文件按鈕 --> 
  22.  <img onclick="getElementById('inputfile').click()" style="cursor:pointer;border: 1px solid #AABBCC;" title="點擊添加圖片" alt="點擊添加圖片" src="http://f7-preview.awardspace.com/zjmainstay.co.cc/jQueryExample/jquery_upload_image/files/addfile.jpg"> 
  23.  <input type="file" multiple="multiple" id="inputfile" style="height:0;width:0;z-index: -1; position: absolute;left: 10px;top: 5px;"/> 
  24.  <span class="loading"></span> 
  25. </div> 
  26. <div id="feedback"></div><!-- 響應返回數據容器 --> 
  27. <script type="text/javascript"> 
  28. $(document).ready(function(){ 
  29.  //響應文件添加成功事件 
  30.  $("#inputfile").change(function(){ 
  31.   //創建FormData對象 
  32.   var data = new FormData(); 
  33.   //為FormData對象添加數據 
  34.   $.each($('#inputfile')[0].files, function(i, file) { 
  35.    data.append('upload_file'+i, file); 
  36.   }); 
  37.   $(".loading").show(); //顯示加載圖片 
  38.   //發送數據 
  39.   $.ajax({ 
  40.    url:'submit_form_process.php', 
  41.    type:'POST', 
  42.    data:data, 
  43.    cache: false, 
  44.    contentType: false, //不可缺參數 
  45.    processData: false,  //不可缺參數 
  46.    success:function(data){ 
  47.     data = $(data).html(); 
  48.     //第一個feedback數據直接append,其他的用before第1個( .eq(0).before() )放至最前面。 
  49.     //data.replace(/&lt;/g,'<').replace(/&gt;/g,'>') 轉換html標簽,否則圖片無法顯示。 
  50.     if($("#feedback").children('img').length == 0) $("#feedback").append(data.replace(/&lt;/g,'<').replace(/&gt;/g,'>')); 
  51.     else $("#feedback").children('img').eq(0).before(data.replace(/&lt;/g,'<').replace(/&gt;/g,'>')); 
  52.     $(".loading").hide(); //加載成功移除加載圖片 
  53.    }, 
  54.    error:function(){ 
  55.     alert('上傳出錯'); 
  56.     $(".loading").hide(); //加載失敗移除加載圖片 
  57.    } 
  58.   }); 
  59.  }); 
  60. }); 
  61. </script> 
  62. </body> 
  63. </html> 

接下來是上傳圖片的PHP文件代碼,文件名:submit_form_process.php,代碼如下:

  1. <?php 
  2. header('content-type:text/html charset:utf-8'); 
  3. $dir_base = "./files/"//文件上傳根目錄 
  4. //沒有成功上傳文件,報錯并退出。 
  5. if(emptyempty($_FILES)) { 
  6.  echo "<textarea><img src='{$dir_base}error.jpg'/></textarea>"
  7.  exit(0); 
  8. $output = "<textarea>"
  9. $index = 0; //$_FILES 以文件name為數組下標,不適用foreach($_FILES as $index=>$file) 
  10. foreach($_FILES as $file){ 
  11.  $upload_file_name = 'upload_file' . $index;//對應index.html FomData中的文件命名 
  12.  $filename = $_FILES[$upload_file_name]['name']; 
  13.  $gb_filename = iconv('utf-8','gb2312',$filename); //名字轉換成gb2312處理 
  14.  //文件不存在才上傳 
  15.  if(!file_exists($dir_base.$gb_filename)) { 
  16.   $isMoved = false;  //默認上傳失敗 
  17.   $MAXIMUM_FILESIZE = 1 * 1024 * 1024;  //文件大小限制 1M = 1 * 1024 * 1024 B; 
  18.   $rEFileTypes = "/^\.(jpg|jpeg|gif|png){1}$/i";  
  19.   if ($_FILES[$upload_file_name]['size'] <= $MAXIMUM_FILESIZE &&  
  20.    preg_match($rEFileTypesstrrchr($gb_filename'.'))) {  
  21.    $isMoved = @move_uploaded_file ( $_FILES[$upload_file_name]['tmp_name'], $dir_base.$gb_filename);  //上傳文件 
  22.   } 
  23.  }else
  24.   $isMoved = true;//已存在文件設置為上傳成功 
  25.  } 
  26.  if($isMoved){ 
  27.   //輸出圖片文件<img>標簽 
  28.   //注:在一些系統src可能需要urlencode處理,發現圖片無法顯示, 
  29.   //    請嘗試 urlencode($gb_filename) 或 urlencode($filename),不行請查看HTML中顯示的src并酌情解決。 
  30.   $output .= "<img src='{$dir_base}{$filename}' title='{$filename}' alt='{$filename}'/>";//開源代碼Vevb.com 
  31.  }else { 
  32.   $output .= "<img src='{$dir_base}error.jpg' title='{$filename}' alt='{$filename}'/>"
  33.  } 
  34.  $index++; 
  35. echo $output."</textarea>"
  36. ?> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 蓬安县| 鱼台县| 乐山市| 儋州市| 拜泉县| 阿尔山市| 突泉县| 龙里县| 大冶市| 黔江区| 班戈县| 贡山| 湘阴县| 周宁县| 庆元县| 托克逊县| 五大连池市| 那坡县| 湖北省| 伊春市| 安化县| 福建省| 昔阳县| 保靖县| 南通市| 石景山区| 禄丰县| 新巴尔虎右旗| 开平市| 东兴市| 项城市| 明水县| 鹰潭市| 咸宁市| 安图县| 宝山区| 陕西省| 南康市| 巴南区| 安新县| 田东县|