HTML5的 input:file上傳類型控制

HTML5的 input:file上傳類型控制

JS讀取/創(chuàng)建本地文件及目錄文件夾的方法

JS音頻轉(zhuǎn)碼

HTML5的 input:file上傳類型控制

2014年8月29日94745次瀏覽

一、input:file屬性

屬性值有以下幾個比較常用:

accept:表示可以選擇的文件MIME類型,多個MIME類型用英文逗號分開,常用的MIME類型見下表。

multiple:是否可以選擇多個文件,多個文件時其value值為第一個文件的虛擬路徑。

1、accept

只能選擇png和gif圖片

只能選擇png和gif圖片

2、multiple

多文件上傳


多文件上傳

3、常用MIME類型

后綴名MIME名稱*.3gppaudio/3gpp,video/3gpp*.ac3? ? audio/ac3*.asf? ? ? allpication/vnd.ms-asf*.au? ? ? ? ? audio/basic*.css? ? ? ? ? text/css*.csv? ? ? ? ? text/csv*.doc? ? application/msword*.dot? ? application/msword*.dtd? ? application/xml-dtd*.dwg? ? image/vnd.dwg*.dxf? ? ? image/vnd.dxf*.gif? ? ? ? ? ? image/gif*.htm? ? text/html*.html? ? text/html*.jp2? ? ? ? ? ? image/jp2*.jpe? ? ? image/jpeg*.jpeg? ? image/jpeg*.jpg? ? ? ? ? image/jpeg*.js? ? ? text/javascript,application/javascript*.json? ? application/json*.mp2? ? audio/mpeg,video/mpeg*.mp3? ? audio/mpeg*.mp4? ? audio/mp4,video/mp4*.mpeg? ? video/mpeg*.mpg? ? video/mpeg*.mpp? ? application/vnd.ms-project*.ogg? ? application/ogg,audio/ogg*.pdf? ? application/pdf*.png? ? image/png*.pot? ? application/vnd.ms-powerpoint*.pps? ? application/vnd.ms-powerpoint*.ppt? ? application/vnd.ms-powerpoint*.rtf? ? ? ? ? ? application/rtf,text/rtf*.svf? ? ? ? ? image/vnd.svf*.tif? ? ? ? image/tiff*.tiff? ? ? image/tiff*.txt? ? ? ? ? text/plain*.wdb? ? application/vnd.ms-works*.wps? ? application/vnd.ms-works*.xhtml? ? application/xhtml+xml*.xlc? ? ? application/vnd.ms-excel*.xlm? ? application/vnd.ms-excel*.xls? ? ? ? ? application/vnd.ms-excel*.xlt? ? ? application/vnd.ms-excel*.xlw? ? ? application/vnd.ms-excel*.xml? ? text/xml,application/xml*.zip? ? ? ? ? ? aplication/zip*.xlsx? ? application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

二、樣式美化

請看博客:css input[type=file] 樣式美化,input上傳按鈕美化http://www.haorooms.com/post/css_input_uploadmh

三、AJAX上傳文件

在說到ajax上傳文件,之前的文章也有說過(詳見:JS學(xué)習(xí)32:html5拖拽圖片批量ajax無刷新進度上傳)。ajax上傳的時候,需要獲得input:file選擇的文件(可能為多個文件),獲取其文件列表為:

// input標簽的files屬性document.querySelector("#fileId").files// 返回的是一個文件列表數(shù)組

獲得的文件列表,然后遍歷插入到表單數(shù)據(jù)當中。即:

// 獲得上傳文件DOM對象varoFiles=document.querySelector("#fileId");// 實例化一個表單數(shù)據(jù)對象varformData=newFormData();// 遍歷圖片文件列表,插入到表單數(shù)據(jù)中for(vari=0,file;file=oFiles[i];i++){// 文件名稱,文件對象formData.append(file.name,file);}

獲得表單數(shù)據(jù)之后,就可以用ajax的POST上傳。

// 實例化一個AJAX對象varxhr=newXMLHttpRequest();xhr.onload=function(){alert("上傳成功!");}xhr.open("POST","upload.php",true);// 發(fā)送表單數(shù)據(jù)xhr.send(formData);

上傳到服務(wù)器之后,獲取到文件列表為:

Array([jpg_jpg]=>Array([name]=>jpg.jpg[type]=>image/jpeg[tmp_name]=>D:\xampp\tmp\phpA595.tmp[error]=>0[size]=>133363)[png_png]=>Array([name]=>png.png[type]=>image/png[tmp_name]=>D:\xampp\tmp\phpA5A6.tmp[error]=>0[size]=>1214628))

在服務(wù)端循環(huán)遍歷這個數(shù)組就可以上傳文件了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • http://www.jb51.net/article/29950.htm 文件后綴MIME備注 *.avivid...
    ink9979閱讀 20,938評論 0 0
  • 一、MIME TYPE 描述 多用途互聯(lián)網(wǎng)郵件擴展(MIME,Multipurpose Internet Mail...
    Arnold_J閱讀 2,013評論 0 1
  • 李雯,一個活潑開朗的姑娘,長著一雙大眼睛,扎一個馬尾辮,身穿一套時尚紅裙,走路的時候辮子左右一甩一甩的,洋溢著...
    風原山鷹閱讀 313評論 0 0
  • 油膩的世界, 昏黃的太陽, 打著哈欠的花貓。 抱怨起夏長~ 垂死的咸魚, 饑渴的長江, 無精打采的風扇葉, 驅(qū)趕日光~
    青鵝閱讀 195評論 5 5