国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

angular.js+node.js實現下載圖片處理詳解

2019-11-19 16:57:54
字體:
來源:轉載
供稿:網友

前言

本文主要介紹的是angular.js+node.js實現下載圖片處理,下載有兩種方式,下面話不多說,來看看詳細的介紹吧。

第一種:

不指定完整路徑,然后發送get給server讓server自己去拼接路徑,然后用express的res.download來做下載:

Express:

var filePath = path.join(savePath, file[0].name);console.log('Download file: ' + filePath);res.download(filePath);

angular:

$http.get(url).success(function (data) { var bin = new $window.Blob([data]); deferred.resolve(data); // Using file-saver library to handle saving work. saveAs(bin, toFilename);})

這種適合于server和用戶之間僅僅發送文件名,然后瀏覽器端構造一個restapi 接口 比如/api/download/xxxxx.png,server自己去找到完整的路徑然后發送給用戶。

第二種方式:

是不寫server代碼,而是通過express的static靜態文件機制,來發送文件給用戶

Express:

app.use('/ocr/uploads', express.static('/data/ocr_img/dev', { maxAge: 86400000 }));

Angular:

$http.get(url, {responseType: 'arraybuffer'}).success(function (data) { var bin = new Blob([data], { "type" : "image/png" }); deferred.resolve({status: '200'}); saveAs(bin, toFilename);})

這種適合用戶知道server開啟靜態文件了,那么需要構造完整的相對路徑, 比如當前網頁的url是/orc, 那么,只要構造url為uploads/xxx.png,那么express會有轉到/data/ocr_img/dev/xxx.png,把文件發送回來。

這里要注意:就是圖片發送回來的時候,server默認是使用的text/plain方式,而圖片需要的是二進制。因此設置{responseType: 'arraybuffer'} ,同時在收到blob數據的時候指定type為new Blob([data],  { "type" : "image/png" } ,這種type也適用于其他圖片類型比如pdf jpg bmp tiff等。

圖片下載其實就是二進制文件的下載了,具體參考MDN的一個權威文檔:

https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Sending_and_Receiving_Binary_Data

再擴展就是這個文檔了:

https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Receiving_binary_data

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對武林網的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 桃源县| 锦州市| 岳阳市| 竹山县| 冷水江市| 卢龙县| 大冶市| 盘锦市| 崇文区| 平原县| 康保县| 信宜市| 寿阳县| 来凤县| 阳城县| 横峰县| 山丹县| 彰武县| 满洲里市| 峡江县| 抚州市| 北辰区| 博乐市| 甘南县| 若羌县| 安仁县| 孝义市| 全南县| 左贡县| 沾化县| 竹北市| 舞钢市| 边坝县| 潞西市| 洮南市| 绩溪县| 伊川县| 南涧| 阳曲县| 翁牛特旗| 大兴区|