各種文件上傳類型設置,實戰示例
網頁上添加一個input file HTML控件:
<input id="File1" type="file" />
默認是這樣的,所有文件類型都會顯示出來,如果想限制它只顯示我們設定的文件類型呢,比如“word“,”excel“,”pdf“文件
解決辦法是可以給它添加一個accept屬性,比如:
<input id="File1" type="file" accept=".xls,.doc,.txt,.pdf" />
這樣選擇的時候默認會顯示為.xls,.doc,.txt,.pdf:
文件選擇框內只顯示出你自定義文件類型的文件,也還比較方便。
這只是最簡單的掩人耳目的做法,還是能選擇其它文件類型。
所以,如果要做到真正意義上限制類型做法(其實這種算不上限制,只是把你要的文件類型默認顯示出來而已,並不是說不能選擇其它的),還是要通過js或者后台來控制。
下面是ogg zip 的實戰示例:
--------------------------------------------------
*.ogg application/ogg, audio/ogg Ogg Vorbis
$fileMIME = $file['type'];
switch ($fileMIME)
{
case 'application/ogg':
$tmpFile = $this->generateDir($modelFileBaseDir).$fileName.'.Ogg';
break;
case 'audio/ogg':
$tmpFile = $this->generateDir($modelFileBaseDir).$fileName.'.Ogg';
break;
case 'ogg':
$tmpFile = $this->generateDir($modelFileBaseDir).$fileName.'.Ogg';
break;
--------------------------------------------------
*.zip aplication/zip Compressed Archive
$fileMIME = $file['type'];
switch ($fileMIME)
{
case 'application/x-zip-compressed':
$tmpFile = $tmpFileDir.$fileName.'.ZIP';
break;
case 'aplication/zip':
$tmpFile = $tmpFileDir.$fileName.'.ZIP';
break;
-------------------------------------------------
/**
* java 測試上傳zip
*
*/
public static void testUploadZip(){
String url = "http://xxxx";
String fileName = "e:/keehelper/pic.zip";
Map<String, String> textMap = new HashMap<String, String>();
//可以設置多個input的name,value
textMap.put("name", "testupfile");
textMap.put("type", "1");
//設置file的name,路徑
Map<String, String> fileMap = new HashMap<String, String>();
fileMap.put("upfile", fileName);
String contentType = "application/x-zip-compressed";
String ret = formUpload(url, textMap, fileMap,contentType);
System.out.println(ret);
}
================================================
附支持的文件類型:
*.3gpp audio/3gpp, video/3gpp 3GPP Audio/Video
*.ac3 audio/ac3 AC3 Audio
*.asf allpication/vnd.ms-asf Advanced Streaming Format
*.au audio/basic AU Audio
*.css text/css Cascading Style Sheets
*.csv text/csv Comma Separated Values
*.doc application/msword MS Word Document
*.dot application/msword MS Word Template
*.dtd application/xml-dtd Document Type Definition
*.dwg image/vnd.dwg AutoCAD Drawing Database
*.dxf image/vnd.dxf AutoCAD Drawing Interchange Format
*.gif image/gif Graphic Interchange Format
*.htm text/html HyperText Markup Language
*.html text/html HyperText Markup Language
*.jp2 image/jp2 JPEG-2000
*.jpe image/jpeg JPEG
*.jpeg image/jpeg JPEG
*.jpg image/jpeg JPEG
*.js text/javascript, application/javascript JavaScript
*.json application/json JavaScript Object Notation
*.mp2 audio/mpeg, video/mpeg MPEG Audio/Video Stream, Layer II
*.mp3 audio/mpeg MPEG Audio Stream, Layer III
*.mp4 audio/mp4, video/mp4 MPEG-4 Audio/Video
*.mpeg video/mpeg MPEG Video Stream, Layer II
*.mpg video/mpeg MPEG Video Stream, Layer II
*.mpp application/vnd.ms-project MS Project Project
*.ogg application/ogg, audio/ogg Ogg Vorbis
*.pdf application/pdf Portable Document Format
*.png image/png Portable Network Graphics
*.pot application/vnd.ms-powerpoint MS PowerPoint Template
*.pps application/vnd.ms-powerpoint MS PowerPoint Slideshow
*.ppt application/vnd.ms-powerpoint MS PowerPoint Presentation
*.rtf application/rtf, text/rtf Rich Text Format
*.svf image/vnd.svf Simple Vector Format
*.tif image/tiff Tagged Image Format File
*.tiff image/tiff Tagged Image Format File
*.txt text/plain Plain Text
*.wdb application/vnd.ms-works MS Works Database
*.wps application/vnd.ms-works Works Text Document
*.xhtml application/xhtml+xml Extensible HyperText Markup Language
*.xlc application/vnd.ms-excel MS Excel Chart
*.xlm application/vnd.ms-excel MS Excel Macro
*.xls application/vnd.ms-excel MS Excel Spreadsheet
*.xlt application/vnd.ms-excel MS Excel Template
*.xlw application/vnd.ms-excel MS Excel Workspace
*.xml text/xml, application/xml Extensible Markup Language
*.zip aplication/zip Compressed Archive