1. 程式人生 > >移動Web開發之HTML5檔案上傳

移動Web開發之HTML5檔案上傳

iOS在瀏覽器中限制訪問本地檔案,並且不支援Flash,所以沒有一個比較好的辦法在瀏覽器中進行檔案的上傳。幸運的是iOS 6中放開了上傳限制。通過指定HTML5<input>標籤的type屬性為“file”建立一個檔案上傳入口,可以訪問相簿和相機。

<inputtype="file"></input>

原始按鈕樣式太不高階,太不大氣,太不上檔次,設計師肯定是接受不了的,移花接木:

<aclass="uploadButton"><inputid="uploadInput"type="file"style="display:block;height:40px;width:45px;opacity:0;"></input></a>

監聽“onchange”事件,響應上傳操作:

$("#uploadInput").listen("change", fOnChange);

onchange事件控制代碼:

function

fOnChange(){

varoFile =this.files[0],

sName,

sFileType = oFile.type;

nSize =0,

nModTime;

// Android下讀不到type資訊,從檔名中解析

if(!sFileType){ sFileType ="image/"+ sName.split(".").pop().toLowerCase(); }

// 讀取檔案大小、修改時間等資訊

var oUploadInfo = {

name : oFile.name || oFile.fileName,

size : oFile.size || oFile.fileSize,modTime : oFile
.lastModifiedDate.valueOf(),
blob : oFile, img : rFilter.test(sFileType)

};

......

// 具體上傳邏輯,視具體伺服器端介面而定

......

}

上傳的圖片顯示base64縮圖:

var oImg = document.createElement("img"); // 載入圖片 oListEl.append(oImg); // 使用FileReader讀取

var oReader = new FileReader(); oReader.onload =function(e){ var sBase64 = e.target.result

; // 部分Android下base64字串格式不完整 if(window.gIsAndroid && sBase64.indexOf("data:image/")!=0){ var sMime = sName.split(".").pop().toLowerCase(); sBase64 = sBase64.replace("base64,","image/"+ sMime +";base64,"); } oImg.src = sBase64; sBase64 =null; } oReader.readAsDataURL(oFile);

特別提醒一下:雖iOS和Android平臺都自帶webkit核心瀏覽器,使得前端開發者擺脫了IE的束縛,可以去嘗試更多的HTML5新特性,但Android平臺由於版本和機型眾多,對特性的支援程度或者實現細節參差不齊,需要我們開發和測試過程要特別注意。

相關推薦

移動Web開發HTML5檔案

iOS在瀏覽器中限制訪問本地檔案,並且不支援Flash,所以沒有一個比較好的辦法在瀏覽器中進行檔案的上傳。幸運的是iOS 6中放開了上傳限制。通過指定HTML5<input>標籤的type屬性為“file”建立一個檔案上傳入口,可以訪問相簿和相機。 <

Tornado web開發簡單檔案

1、介紹 我們知道,在web開發過程中,檔案上傳是經常用到的功能,比如上傳附件,上傳照片等 下面我們來介紹一下利用tornado 來實現檔案上傳功能 2.程式碼 由於實現檔案上傳的表單很簡單,只需要幾行html,我們把他們直接嵌入到python程式碼中 廢話少說,直接上程

Web開發中的檔案問題研究

前因:因為web開發用到檔案上傳功能,搜尋到了Valums,感覺很不錯,特別是它在非IE瀏覽器下通過HTML5技術來支援多檔案上傳,支援拖拽功能等,不過在具體用中並不順利,Valums在FF下罷工,追究原因,原來跟我使用Aapche FIleUpload有關,再追究,對檔案上

移動web開發像素和DPR

javascript element 英語單詞 計算機 web開發 定義  像素,又稱畫素,是圖像顯示的基本單位,譯自英文“pixel”,pix是英語單詞picture的常用簡寫,加上英語單詞“元素”element,就得到pixel,故“像素”表示“圖像元素”之意,有時亦被稱為pel(pi

移動WEB開發JS內置touch事件[轉]

調用 位置 .com 構造 turn listener 附件 cli 瀏覽器 iOS上的Safari也支持click 和mouseover等傳統的交互事件,只是不推薦在iOS的瀏覽器應用上使用click和mouseover,因為這兩個事件是為了支持鼠標點擊而設計 出來的。

Sentry命令列工具PDB檔案

Sentry尚不直接支援Microsoft PDB檔案。在我們提供官方支援之前,您可以將它們轉換為Breakpad符號並上傳它們: 獲取.pdb檔案並將其放在Windows計算機上 下載我們的Windows Breakpad Tools並解壓縮dump_syms.exe 執行d

Bootstrapfileinput檔案控制元件

 前言~ 前段時間做專案用到了bootstrap裡中的檔案上傳控制元件,對此特定寫這篇文章,講述一下bootstrap的檔案上傳空間的使用方法。 我們進入正題吧!        首先bootstrap是基於jquery的,因此要匯入

web服務端安全---檔案漏洞

1、簡述   檔案上傳漏洞是指使用者上傳了一個可執行的指令碼檔案,並通過此指令碼檔案獲得了執行服務端命令的能力。這種攻擊方式是最直接和有效的,而且網際網路中我們經常會用到檔案上傳功能,它本身是沒有問題的,正常的業務需求,可是檔案上傳後伺服器如果不能安全有效的處理或解釋檔案,往往會造成嚴重的後果。 常見的安

java前後臺開發後臺自動下載

package downloadTest; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import

SSH開發中的檔案

檔案上傳的要素 表單提交方式必須是POST 表單的enctype屬性:必須設定為multipart/form-data 表單必須有檔案上傳項:file 表單 <form id=form1 name=form1 action="${pageCont

PHP強化13 - 檔案與下載

一、檔案上傳 將客戶端檔案上傳到伺服器端,再將伺服器端的檔案(臨時檔案)移動到指定目錄即可。 1、form表單 檔案的上傳一般都是經過form表單來實現的。 1)標籤enctype屬性 表單中enctype="multipart/form-data"是用於設定表單的MIM

web應用中的檔案

原型:public void saveAs(java.lang.String destFilePathName)或者public void saveAs(java.lang.String destFilePathName,int optionSaveAs)其中,destFilePathName另存的檔名,op

html5檔案

作為H5的一部分,web儲存得到了很好的支援,但不是存取資料的唯一方式,為了實現與儲存相關的不同任務,也出現了其他幾種不同的標準,其中一個就是File API,從技術角度講他並不是h5的規範內容,但是現在的瀏覽器卻是有著較好的支援,當然IE除外。 1.用i

HTML5 檔案的2種方式

以前上傳檔案需要提交Form表單。 HTML5方式上傳檔案,可以通過使用FormData類模擬Form表單提交,從而實現無重新整理上傳檔案。 假設有一個檔案選擇框 <input type="file" name="pic" id="pic" accept="i

JSP 實用程式簡易檔案元件

Edit:6-19 更新,提供了基於 Servlet(非 JSP)的元件下載,這是一個完整的 Java Web 專案,用 Eclipse 匯入即可,專案原始碼在這裡。檔案上傳,包括但不限於圖片上傳,是 Web 開發中司空見慣的場景,相信各位或多或少都曾寫過這方面相關的程式碼。

Jmeter模擬檔案、下載介面操作--轉載

  一、準備工作: 上傳介面一個(自行開發解決了) 下載介面 ps:沒有困難創造困難也要上 jmeter4.0版本 上傳介面原始碼 /** * 檔案上傳 */ @RequestMapping

移動web開發畫素和DPR

前面的話   畫素在web開發中幾乎天天用到,但到底什麼是畫素,移動端和桌面端的畫素有區別嗎,縮放對畫素有影響嗎,視網膜螢幕和畫素有什麼關係?關於這些問題,可能就不清楚了。本文將介紹關於畫素的相關知識 定義   畫素,又稱畫素,是影象顯示的基本單位,譯自英文“pixel”,pix是英語單詞pictu

如何在基於Java的Web專案中實現檔案和下載?

在Sevlet 3 以前,Servlet API中沒有支援上傳功能的API,因此要實現上傳功能需要引入第三方工具從POST請求中獲得上傳的附件或者通過自行處理輸入流來獲得上傳的檔案,我們推薦使用Apac

移動web開發畫素和DPR詳解

前話:   畫素在web開發中幾乎天天用到,但到底什麼是畫素,移動端和桌面端的畫素有區別嗎,縮放對畫素有影響嗎,視網膜螢幕和畫素有什麼關係?關於這些問題,可能就不清楚了。本文將介紹關於畫素的相關知識    什麼是畫素:   畫素,又稱畫素,是影象顯示的基

Springboot 檔案-知識林

本文章來自【知識林】 檔案上傳在各種網站平臺上應用都非常廣泛,這篇文章將講述在Springboot中是如何完成檔案上傳的,Springboot是打包執行的,上傳後的檔案又該何去何從? pom.