文件上傳 HTML
標簽的 enctype 屬性


HTML <form> 標簽的 enctype 屬性
例如:
    <form action="form_action.do" enctype="">
      <p>First name: <input type="text" name="fname" /></p>
      <p>Last name: <input type="text" name="lname" /></p>
      <input type="submit" value="Submit" />
    </form>

enctype 屬性
    是規定在發送到服務器之前應該如何對表單數據進行編碼(MIME編碼)。
    服務器將 MIME標志符放入傳送的數據中來告訴瀏覽器使用哪種插件讀取相關文件。
    A:application/x-www-form-urlencoded 默認的
        就是說,在發送到服務器之前,所有字符都會進行編碼(空格轉換為 "+" 加號,特殊符號轉換為 ASCII HEX 值)。
    B:multipart/form-data    
        不對字符編碼。在使用包含文件上傳控件的表單時,必須使用該值。
        是用來制定傳輸數據的特殊類型的,主要就是我們上傳的非文本的內容,比如圖片或是是mp3等等。
        enctype="multipart/form-data"是上傳二進制數據; form里面的input的值以2進制的方式傳過去。
    C:text/plain    
        空格轉換為 "+" 加號,但不對特殊字符編碼。
        是純文本傳輸的意思,在發郵件的時候要設置這種編碼類型,否則會出現接收時編碼混亂的問題。
        網絡上經常拿text/plain和 text/html做比較,其實這兩個很好區分,前者用來傳輸純文本文件,
        后者則是傳遞html代碼的編碼類型,在發送頭文件時才用得上。
        ①和③都不能用於上傳文件,只有multipart/form-data才能完整的傳遞文件數據

補充:
    MIME,它的英文全稱是"Multipurpose Internet Mail Extensions" 多功能Internet 郵件擴充服務,
    它是一種多用途網際郵件擴充協議,在1992年最早應用於電子郵件系統,但后來也應用到瀏覽器。
    服務器會將它們發送的多媒體數據的類型告訴瀏覽器,而通知手段就是說明該多媒體數據的MIME類型,
    從而讓瀏覽器知道接收到的信息哪些是MP3文件,哪些是Shockwave文件等等。
    服務器將 MIME標志符放入傳送的數據中來告訴瀏覽器使用哪種插件讀取相關文件。
    
    簡單說,MIME類型就是設定某種擴展名的文件用一種應用程序來打開的方式類型,當該擴展名文件被訪問的時候,
    瀏覽器會自動使用指定應用程序來打開。多用於指定一些客戶端自定義的文件名,以及一些媒體文件打開方式。
    
    瀏覽器接收到文件后,會進入插件系統進行查找,查找出哪種插件可以識別讀取接收到的文件。
    如果瀏覽器不清楚調用哪種插件系統,它可能會告訴用戶缺少某插件,或者直接選擇某現有插件來試圖讀取接收到的文件,
    后者可能會導致系統的崩潰。傳輸的信息中缺少MIME標識可能導致的情況很難估計,
    因為某些計算機系統可能不會出現什么故障,但某些計算機可能就會因此而崩潰。

常見的MIME類型
    超文本標記語言文本 .html,.html text/html
    普通文本 .txt text/plain
    RTF文本 .rtf application/rtf
    GIF圖形 .gif image/gif
    JPEG圖形 .jpeg,.jpg image/jpeg
    au聲音文件 .au audio/basic
    MIDI音樂文件 mid,.midi audio/midi,audio/x-midi
    RealAudio音樂文件 .ra, .ram audio/x-pn-realaudio
    MPEG文件 .mpg,.mpeg video/mpeg
    AVI文件 .avi video/x-msvideo
    GZIP文件 .gz application/x-gzip
    TAR文件 .tar application/x-tar





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM