移動端<input>上傳圖片

上傳圖片.gif

html

        <form id="fm_feedBack" enctype="multipart/form-data" method="post">
                <div class="top-container">
                <textarea name="content" id="adviceContent" name="" rows="" cols="" placeholder="把你使用過程的感受、意見告訴我們吧,我們會努力改進的!"></textarea>
            </div>
            <div class="photo-container">
                        //上傳圖片
                <div class="pushPhoto"  style="position: relative;">
                    <span class="close-btn" onclick="delImg(this)">X</span>
                    <img />
                    <input name="adviceImga" type="file" accept="image/*"  value="+" capture="camera"  onchange="imgPreview(this)">
                </div>
                <span class="photo-tips">上傳截圖</span>
            </div>
            <div class="line-container">
                <input type="tel" name="phoneNo" id="contactMethod" value="" placeholder="請?zhí)顚懩穆?lián)系方式(手機/QQ都可以)"/>
            </div>
            <button type="button" class="btn" >提交反饋</button>
        </form>

js

FileReader是html5定義的用于讀取文件的API,F(xiàn)ileReader接口有4個方法,其中3個用來讀取文件,另一個用來中斷讀取。無論讀取成功或失敗,方法并不會返回讀取結(jié)果,這一結(jié)果存儲在result屬性中。

  • readAsBinaryString:將文件讀取為二進制編碼
  • readAsText:將文件讀取為文本
  • readAsDataURL:將文件讀取為DataURL
  • abort : 終端讀取操作

FileReader接口的使用

        if (window.FileReader) {
            var reader = new FileReader();
        } else {
            alert("您的設備不支持圖片預覽功能,如需該功能請升級您的設備!");
        }
        //獲取文件
        var file = fileDom.files[0];
        //將文件以Data URL形式讀入頁面 
        reader.readAsDataURL(file);
       reader.onload = function(e) {
          //獲取結(jié)果
          result = e.target.result;
        }

確保用戶上傳的是圖片

        var imageType = /^image\//;
        //是否是圖片
        if (!imageType.test(file.type)) {
            alert("請選擇圖片!");
            return;
        }

css

不用input[type="file"]默認樣式所以將其透明度設為0,并為其父元素設置想要的樣式

input[type="file"]{
    opacity: 0;
    position:absolute;
    width:100%; 
    height: 100%;
    border:none
}
.pushPhoto>img{
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    width:0%;
    height: 0%;
    
}
.close-btn{
    //刪除按鈕
    display: none;
    position: absolute;
    right: 0;
    top: 0;
    color: #555;
    font-size: 0.8rem;
    background:#dcdcdc;
    padding: 5% 8%;
    z-index: 2;
}
.pushPhoto{
    background: url(../img/advice_pic_btn.png) no-repeat center center;//樣式背景圖
    background-size: contain;
}

表單上傳

serialize():輸出序列化表單值的結(jié)果
<form> 標簽的 enctype 屬性規(guī)定在發(fā)送到服務器之前應該如何對表單數(shù)據(jù)進行編碼

  • application/x-www-form-urlencoded : 在發(fā)送前編碼所有字符(默認)
  • multipart/form-data : 不對字符編碼。在使用包含文件上傳控件的表單時,必須使用該值。
  • text/plain : 空格轉(zhuǎn)換為 "+" 加號,但不對特殊字符編碼。
        $.ajax({
            cache: true,
            type: "POST",
            url:URL,
            data:   $('#formId').serialize(),
            async: false,
            error: function(request) {
                
            },
            success: function(data) {
              if(typeof(data)=="string"){
                  data=JSON.parse(data);
              }
              if(data.resultCode==1){
                  alertmsg(data.result);
              }
            }
        });
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,544評論 19 139
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內(nèi)部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,650評論 18 399
  • 發(fā)現(xiàn) 關注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 15,208評論 4 61
  • 本文包括:1、文件上傳概述2、利用 Commons-fileupload 組件實現(xiàn)文件上傳3、核心API——Dis...
    廖少少閱讀 12,743評論 5 91
  • 昨晚聽了王霞老師的第二次課堂,如何有效輸出,讓我對自己又有了深刻的檢討,輸出就是做筆記,做筆記為了什么,為了更好地...
    雅典娜劉艷閱讀 312評論 0 0

友情鏈接更多精彩內(nèi)容