首頁 > web前端 > html教學 > 行動端HTML5實作檔案上傳_HTML/Xhtml_網頁製作

行動端HTML5實作檔案上傳_HTML/Xhtml_網頁製作

WBOY
發布: 2016-05-16 16:36:06
原創
1375 人瀏覽過

PC端上傳文件多半用插件,引入flash都沒關係,但是移動端要是還用各種冗餘的插件估計得被噴死,項目裡面需要做圖片上傳的功能,既然H5已經有相關的接口且相容性良好,當然優先考慮用H5來實現。

用的技術主要是:

ajax

FileReader

FormData

HTML結構:

XML/HTML Code複製內容到剪貼簿
  1. div class=class=class=
  2. 」 >
  3. >         form enctype  method="post"
  4. >"post">"post"> >         input type type type類型 name="fileToUpload"  >"fileToUpload" accept="image/*"
  5. capture="camera"/>             div div div div div div
  6.  div div div
  7.  >span>span >div>  
  8.         form> 🎜>>
  9.  🎜>>
  10.  
      

div
 class
 class>div>     div>      已經封裝好的upload.js,依賴zepto JavaScript Code複製內容到剪貼簿
  1. (函數($) {   
  2.   $.extend($.fn, {   
  3.     檔案上傳:函數(選取){   
  4.       這個.each(函數() {  >
  5.         
  6. var $self = $(這個這個
  7.         var doms = {   
  8.           "fileToUpload": $self.find(: $self.find(
  9. : $self.find(
  10. >           "拇指": $self.find( >           
  11. 「進度」: $self.find(         };           
  12. var
  13.  有趣 = {   
  14.           //選擇文件,以取得檔案大小,並在此取得檔案格式,並可限制使用者上傳未要求格式的檔案   
  15.           "fileSelected"
  16.             var files = (doms.fileToUpload)[0]. files = (doms.fileToUpload)[0]. files = (doms.fileToUpload)[0]. files = (doms.fileToUpload)[0]. files = (doms.fileToUpload)[0]。             
  17. var count = files.length;              for
  18.  (               var
  19.  file =                var fileSize = 0;   fileSize = 0;   fileSize = 0;  
  20.               if (檔案大小 > 1024  
  21.                 fileSize = (Math.round(file.size * 100 / (1024  ';                  
  22. 其他                   fileSize = (Math.round(file.size * 100 / 1024) / 100).* 100 / 1024) / 100). 🎜>;   
  23.             }  
  24.             funs.uploadFile();   
  25.           },   
  26.           //非同步上傳檔案   
  27.           uploadFile: function() {   
  28. () {                var fd =  fd = 
  29.   
  30.             var
  31.  files = (doms.fileToUpload)[0].files;
  32.             var count = files.length;
  33.             
  34. for (               var
  35.  file =                fd.append(opts.file, file);//將檔案加入表單資料>               funs.previewImage(file);
  36. //上傳前預覽圖片,也可透過其他方式預覽             }                
  37. var xhr =  >             xhr.upload.addEventListener(
  38. "progress"
  39. , //監聽上傳進度
  40.                xhr.addEventListener("load", funs.upload
  41.             xhr.addEventListener(
  42. "error", opts.uploadFailed, > 🎜>             xhr.open("POST",               xhr.send(fd);   
  43.           },   
  44.           //檔案預覽   
  45.           previewImage: function(file) {   
  46.             var gallery = 
  47.             
  48. var img = . 🎜>             img.file = file;                doms.thumb.html(img);   
  49.             
  50. // 使用FileReader方法顯示圖片內容
  51.   
  52.             var
  53.  reader = 
  54.             reader.onload = (function              return
  55.                  aImg.src = e.target.result;                  };   
  56.             })(img);                reader.readAsDataURL(file);              },   
  57.           uploadProgress: 
  58. function
  59. (evt) {  
  60. (evt) { 
  61.             
  62. if
  63.  (evt.lengthComp  
  64.               
  65. var percentComplete  Math。 🎜>               doms.progress.html(percentComplete.toString()   '%'
  66.             }              },   
  67.           "uploadComplete"
  68. functionfunction             alert(evt.target.responseText)   
  69.           }   
  70.         };   
  71.         doms.fileToUpload.on("change"          doms.progress.find("span"
  72. ).width(
  73. >           funs.fileSelected();            });   
  74.       });   
  75.     }   
  76.   });   
  77. })(Zepto);  
  78. 呼叫方法:
  79. JavaScript Code
複製內容到剪貼簿

$(".camera-area"
).fileUpload({   
  1.         "url""savetofile.php"
  2. "savetofile.php"         "file"
  3. "myFile"
  4. "myFile""myFile"       });   
  5. PHP部分:


PHP Code

複製內容到剪貼簿
  • if
  •  (isset($_FILES['my🎜>['my🎜>'my> 🎜>])) {        
  • // Example:        writeLog(
  • $_FILES);        move_uploaded_file(
  • $_FILES['myFile'['myFile'], "uploads/" . $_FILES[$_FILES[[m >]['name']);   
  •     echo 'successful';   
  • }   
  • function writeLog($log){   $log
  • ){   
  • $log){   $log){   $log){   $log){   $log){        if(
  • is_array
  • is_object($log)){   
  •         $log
  •  = json_encode($log    }        $log = 
  • $log.
  • $log。;           file_put_contents(
  • 'log.log', 🎜>,FILE_APPEND);   
  • }   
  • ?>   

    以上就是本文的全部內容,希望對大家的學習有所幫助。

    原文:http://www.cnblogs.com/hutuzhu/p/5254532.html

    相關標籤:
    來源:php.cn
    本網站聲明
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
    熱門教學
    更多>
    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板