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

資訊專欄INFORMATION COLUMN

blob和base64轉文件并通過ajax上傳到服務器

tuomao / 1134人閱讀

摘要:有時候,我們不想通過上傳本地圖片的方式上傳圖片,而是通過相機拍照,將這個拍照后的圖片直接上傳到服務器上,不需要保存到本地。現在我們來通過的或者方法對象對象來通過上傳圖片。

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

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




第二種方式,通過base64轉碼,這里只看js代碼
這是canvas調用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("上傳完成!")
    }
})

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

@Controller
public class IndexCtronller {

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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/106638.html

相關文章

  • blobbase64文件通過ajax上傳務器

    摘要:有時候,我們不想通過上傳本地圖片的方式上傳圖片,而是通過相機拍照,將這個拍照后的圖片直接上傳到服務器上,不需要保存到本地。現在我們來通過的或者方法對象對象來通過上傳圖片。 有時候,我們不想通過上傳本地圖片的方式上傳圖片,而是通過相機拍照,將這個拍照后的圖片直接上傳到服務器上,不需要保存到本地。比如,用video模擬一個攝像頭,通過webrtc調用攝像頭的方式拍一張照,然后通過canva...

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

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

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

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

    Lsnsh 評論0 收藏0
  • 前端js壓縮圖片上傳

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

    peixn 評論0 收藏0
  • JS壓縮上傳圖片

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

    luxixing 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<