国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

blob和base64轉(zhuǎn)文件并通過ajax上傳到服務(wù)器

tuomao / 1147人閱讀

摘要:有時(shí)候,我們不想通過上傳本地圖片的方式上傳圖片,而是通過相機(jī)拍照,將這個(gè)拍照后的圖片直接上傳到服務(wù)器上,不需要保存到本地。現(xiàn)在我們來通過的或者方法對(duì)象對(duì)象來通過上傳圖片。

有時(shí)候,我們不想通過上傳本地圖片的方式上傳圖片,而是通過相機(jī)拍照,將這個(gè)拍照后的圖片直接上傳到服務(wù)器上,不需要保存到本地。
比如,用video模擬一個(gè)攝像頭,通過webrtc調(diào)用攝像頭的方式拍一張照,然后通過canvas通過getContext("2d")獲取的繪圖對(duì)象CanvasRenderingContext2DdrawImage(video, x, y, width, heigth)方法將video圖像通過canvas直接畫到html頁(yè)面上,用來呈現(xiàn)拍照后的結(jié)果。
通常的做法是用

的方式上傳圖片的。但這種方式是要求圖片具體存在的,本地或者url路徑上的。
現(xiàn)在我們來通過canvas的toDataURL或者toBlob方法、File對(duì)象、FormData對(duì)象來通過ajax上傳圖片。




第二種方式,通過base64轉(zhuǎn)碼,這里只看js代碼
這是canvas調(diào)用toDataURL方法將圖片base64編碼

let base64 = canvas.toDataURL();    // 同樣通過canvas的toDataURL方法將canvas圖片Base64編碼

let bstr = atob(base64.split(",")[1]);    // atob是將base64編碼解碼,去掉data:image/png;base64,部分
let n = bstr.length;
let u8arr = new Uint8Array(n);

while (n--) {
    u8arr[n] = bstr.charCodeAt(n);
}

// 寫法同上
let file2 = new File([u8arr], "a.jpg", {type: "image/jpg"})

let formData = new FormData()
formData.append("file", file2)
console.log(formData)

$.ajax({
    url: "/a",
    type: "POST",
    processData: false,
    contentType: false,
    cache: false,
    data: formData,
    success(res) {
        console.log("上傳完成!")
    }
})

其上兩種寫法皆可
下面是后臺(tái)代碼,這里用的是java

@Controller
public class IndexCtronller {

    @RequestMapping(value = "/a", method = RequestMethod.POST)
    public ResponseEntity index(MultipartFile file) {    // 通過MultipartFile對(duì)象接收文件
        String contextPath = "C:UsersdaggerDesktop";    // 上傳文件路徑
        File file1 = new File(contextPath, "a.jpg");
        try {
            file.transferTo(file1);    // 將文件保存到服務(wù)器桌面
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/106638.html

相關(guān)文章

  • blobbase64轉(zhuǎn)文件通過ajax上傳務(wù)器

    摘要:有時(shí)候,我們不想通過上傳本地圖片的方式上傳圖片,而是通過相機(jī)拍照,將這個(gè)拍照后的圖片直接上傳到服務(wù)器上,不需要保存到本地。現(xiàn)在我們來通過的或者方法對(duì)象對(duì)象來通過上傳圖片。 有時(shí)候,我們不想通過上傳本地圖片的方式上傳圖片,而是通過相機(jī)拍照,將這個(gè)拍照后的圖片直接上傳到服務(wù)器上,不需要保存到本地。比如,用video模擬一個(gè)攝像頭,通過webrtc調(diào)用攝像頭的方式拍一張照,然后通過canva...

    bingchen 評(píng)論0 收藏0
  • 前端文件上傳(js/vue.js/axios/canvas圖片壓縮)

    摘要:哈哈主要還是我嫌麻煩四上傳圖片這里的頁(yè)面樣式,圖片壓縮和預(yù)覽都和上面一樣,這里我主要配置一下的,讓接口能夠成功上傳。如果想讓用戶有更好的體驗(yàn),可以對(duì)圖片進(jìn)行一下壓縮和本地預(yù)覽。 一、通過Form表單提交上傳 HTML enctype屬性必不可少 上面一種方法通過表單自有屬性進(jìn)行提交,看似簡(jiǎn)單,但是也有其最大的缺點(diǎn),那就是提交...

    Luosunce 評(píng)論0 收藏0
  • 前端文件上傳(js/vue.js/axios/canvas圖片壓縮)

    摘要:哈哈主要還是我嫌麻煩四上傳圖片這里的頁(yè)面樣式,圖片壓縮和預(yù)覽都和上面一樣,這里我主要配置一下的,讓接口能夠成功上傳。如果想讓用戶有更好的體驗(yàn),可以對(duì)圖片進(jìn)行一下壓縮和本地預(yù)覽。 一、通過Form表單提交上傳 HTML enctype屬性必不可少 上面一種方法通過表單自有屬性進(jìn)行提交,看似簡(jiǎn)單,但是也有其最大的缺點(diǎn),那就是提交...

    Lsnsh 評(píng)論0 收藏0
  • 前端js壓縮圖片上傳

    公司最近有需要壓縮上傳圖片功能,查找了些資料并實(shí)現(xiàn)了一把。 主要用到的原生組件:FileReader、Canvas、Blob、FormData 邏輯步驟: FileReader.readAsDataURL將上傳的圖片文件轉(zhuǎn)為Base64格式 將img繪制到canvas上,canvas.toDataURL壓縮圖片 new Blob將壓縮后的Base64轉(zhuǎn)為Blob格式 FormData.appen...

    peixn 評(píng)論0 收藏0
  • JS壓縮上傳圖片

    摘要:讀取文件文件對(duì)象加載圖片圖片地址的圖片轉(zhuǎn)圖片轉(zhuǎn)圖片對(duì)象圖片質(zhì)量到之間縮放比例到之間超過這個(gè)值無法生成,在上方式一低版本兼容性差些文件類型文件大小質(zhì)量大小方式二文件類型文件大小質(zhì)量大小上傳上傳的地址文件對(duì)象處理上傳進(jìn)度上傳中反饋 * @Date: 2016/11/17 0017 * @Time: 10:14 * @Author: lxbin * * Created with ...

    luxixing 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<