亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

圖片上傳之FileAPI與NodeJs

2019-11-19 17:47:31
字體:
來源:轉載
供稿:網友

HTML5之fileAPI

HTML5之fileAPI使得我們處理圖片上傳更加簡單。

實例

html代碼

<div class="form-group">  <label for="modal_inputFile" class="col-md-3 control-label label-font">位置圖:</label>  <div class="col-md-9">   <input type="text" readonly="" class="form-control" placeholder="點擊選擇文件">   <input type="file" id="modal_inputFile">   <img src="" class="img-responsive" id="modal-pre" alt="預覽區" style="max-height: 300px">  </div></div>

效果:

這里我們可以通過$("#modal_inputFile")[0].files[0]來獲取到圖片的信息。

這里有name,size,type這幾個我們常用的屬性。

實現預覽

選擇好圖片后,我們都希望會有個預覽功能。這個html5也為我們想到了。

他提供了FileReader這個新的對象給我們。

FileReader該接口主要用來把文件讀入內存,并且讀取文件中的數據。

這樣我們就可以通過date url來實現預覽了。

var file = document.getElementById(modal_inputFile'').files[0]; if (!file) { return false; } var reader = new FileReader(); reader.readAsDataURL(file); reader.onload = function(e) { var ib_pre = document.getElementById('modal-pre'); ib_pre.src = this.result;}

這樣就實現了預覽。

我們再來查看下img的src。

<img src="data:image/png;base64,iVBORXXXXXXXXXXXXX....XXXXXXX" class="img-responsive" id="modal-pre" alt="預覽區" style="max-height: 300px">

src是base64編碼。

與后臺對接

既然前端使用文件API能滿足我們的需求,那我們接下來就需要上傳到服務端了。當仁不讓的就是NodeJs了。

前端請求

下面是前端發起請求的例子:

//圖片上傳$('#preUpload').on('click', function(e) { var data = new FormData(); var _files = $("#modal_inputFile")[0].files[0]; var ect = ($("#modal_inputFile")[0].files[0]).name.split('.')[1]; if(ect !== 'png'){  alert('請上傳png圖片!')  return; } data.append("modal_file", _files); $.ajax({  type: 'post',  dataType: 'json',  url: window.stnt_hosts + 'thirdAdmanage/upload/modal',  data: data,  contentType: false,  processData: false }).done(function(data, status) {  console.log('上傳成功'); }).fail(function(err) {  console.log('上傳失敗'); })})

這里通過FormData來處理我們需要上傳的數據。

這里的data數據是一個序列過的對象。后臺接受就行了。

后端處理

服務端我們使用node-formidable來處理圖片的保存等操作。

見代碼:

var formidable = require("formidable");var form = new formidable.IncomingForm();//臨時目錄form.uploadDir = './upload/';//預覽圖片上傳router.post('/upload/modal', function(req, res, next) { form.parse(req, function(err, fields, files) {  if (files.modal_file) {   rename(files.modal_file.path, files.modal_file.name, 'preview')   res.send({    stats:'success',    data:[]   })  } })});function rename(old, _new, code, bId) { var path = './upload/' + code + '/';  fs.exists(path, function(exists) {   if (!exists) {    fs.mkdir(path)    console.log('創建文件夾!')   }   fs.renameSync(old, path + _new, function(err) {    if (err) {     console.log(err);     return;    }    console.log('上傳成功!')   })  })}

這里使用fs.renameSync的原因是,我們里面設置的臨時目錄form.uploadDir是存在于內存中的數據,并不是真正的圖片。

類似這樣

我們需要通過fs的方法,將文件重新保存到我們需要的地方即可。這時候就是圖片了。

最后

這里的form.parse(req, function(err, fields, files)中的fields與files到底是什么對象,一定要自己調試著看。看完你就明白是什么了。

之前我不清楚的時候就是打開瀏覽器就搜索,結果可想而知很慘,幾乎全是錯的。

所以不清楚的話一定要去查github。

還有app.use(bodyParser.urlencoded({ extended: true }));的作用是用來解析我們通常的form表單提交的數據,也就是請求頭中包含這樣的信息: Content-Type: application/x-www-form-urlencoded

app.use(bodyParser.json())是用來解析json的。

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持武林網!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品视频在线导航| 亚洲精品第一国产综合精品| 国产一区二区丝袜高跟鞋图片| 国产精品日韩久久久久| 2019中文字幕全在线观看| 欧美大全免费观看电视剧大泉洋| 精品久久久久久久久国产字幕| 在线观看视频亚洲| 久久精品国产一区| 日韩最新av在线| 欧美精品久久久久久久久久| 亚洲bt欧美bt日本bt| 91久久久久久久久久| 成人国产精品日本在线| 日韩亚洲综合在线| 欧美国产乱视频| 精品国产视频在线| 国产一区二区丝袜高跟鞋图片| 亚洲第一区在线观看| 2024亚洲男人天堂| 红桃视频成人在线观看| 成人av电影天堂| 中文字幕av日韩| 国产不卡精品视男人的天堂| 中文字幕亚洲情99在线| 日本精品一区二区三区在线| 国产一区二区在线免费| 亚洲少妇激情视频| 国产精自产拍久久久久久| 亚洲第一国产精品| 国产一区二区成人| 欧美xxxx18性欧美| 久久国产加勒比精品无码| 欧美激情乱人伦一区| 福利二区91精品bt7086| 欧美一级视频在线观看| 亚洲国产精久久久久久| 日本精品一区二区三区在线| 久久久国产精品亚洲一区| 国产日本欧美在线观看| 亚洲最新中文字幕| 隔壁老王国产在线精品| 欧美成人精品h版在线观看| 欧美日韩精品在线视频| 亚洲xxxx视频| 欧美一级淫片aaaaaaa视频| 国产精品电影久久久久电影网| 中文欧美在线视频| 久久国产精品99国产精| 欧美第一黄网免费网站| 日韩精品在线观看视频| 久久中文字幕国产| 日韩欧美精品在线观看| 欧美日韩在线一区| 国产伊人精品在线| 国产精品直播网红| 亚洲精品日韩欧美| 91精品国产电影| 92看片淫黄大片欧美看国产片| 国产精品欧美一区二区三区奶水| 久久久久国色av免费观看性色| 亚洲国产另类久久精品| 欧美美最猛性xxxxxx| 国产精品久久久久不卡| 国产做受69高潮| 一级做a爰片久久毛片美女图片| 亚洲国产精品字幕| 97人洗澡人人免费公开视频碰碰碰| 日韩av123| 国产日韩欧美在线视频观看| 成人国产精品久久久久久亚洲| 免费97视频在线精品国自产拍| 日韩资源在线观看| 欧美超级免费视 在线| 国产精品视频网站| 欧美日韩久久久久| 亚洲一区二区日本| 亚洲女人被黑人巨大进入al| 国产69久久精品成人看| 国产亚洲精品久久久久久| 亚洲激情第一页| 久久亚洲私人国产精品va| 亚洲视频自拍偷拍| 亚洲尤物视频网| 色妞色视频一区二区三区四区| 欧美高清视频免费观看| 欧美日韩综合视频网址| 91免费在线视频网站| 91日韩在线播放| 欧洲中文字幕国产精品| 成人网中文字幕| 538国产精品一区二区在线| 亚洲伊人久久综合| 日韩视频第一页| 正在播放国产一区| 欧美激情在线播放| 97久久伊人激情网| 亚洲国产婷婷香蕉久久久久久| 精品一区二区三区三区| 欧美亚洲视频一区二区| 麻豆一区二区在线观看| 精品成人乱色一区二区| 91麻豆国产精品| 国产精品白嫩初高中害羞小美女| 亚洲国产欧美日韩精品| 亚洲欧洲日产国码av系列天堂| www.日本久久久久com.| 日韩中文字幕在线播放| 欧美电影在线观看| 亚洲欧洲第一视频| 粉嫩老牛aⅴ一区二区三区| 国产成人高清激情视频在线观看| 92看片淫黄大片欧美看国产片| 日韩第一页在线| 久久影院中文字幕| 久久激情视频久久| 国产成人在线播放| 8050国产精品久久久久久| 亚洲美女中文字幕| 国产精品极品美女在线观看免费| 国产精品狠色婷| 久久影院资源网| 亚洲国产中文字幕在线观看| 成人xxxx视频| 国产91在线高潮白浆在线观看| 亚洲国产精品久久精品怡红院| 精品亚洲一区二区| 欧美日韩国产丝袜美女| 不卡av在线播放| 亚洲影视九九影院在线观看| 精品国产老师黑色丝袜高跟鞋| 91精品国产亚洲| 国产精品免费电影| 日韩精品在线看| 成人在线精品视频| 亚洲精品在线看| 国产一区二区三区在线观看视频| 亚洲色图色老头| 欧美性猛交xxxx偷拍洗澡| 久久久久久亚洲| 91高清在线免费观看| 亚洲视频精品在线| 国产精品美女www爽爽爽视频| 国产欧美一区二区三区视频| 欧美丝袜一区二区三区| 亚洲人成五月天| 国产欧美一区二区三区在线| 欧美亚洲视频一区二区| 成人国产精品一区二区| 亚洲一区二区三区乱码aⅴ| 国产成人精彩在线视频九色| 久久精品国产清自在天天线| 国自产精品手机在线观看视频| 成人国产亚洲精品a区天堂华泰| 国产91亚洲精品| 日韩av免费在线播放| 欧美在线播放视频| 国产精品十八以下禁看| 2019国产精品自在线拍国产不卡| 久久精品久久久久久| 亚洲精品在线看| 亚州成人av在线| 国产日韩在线免费| 91香蕉亚洲精品|