欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

nodejs利用ajax實現(xiàn)網(wǎng)頁無刷新上傳圖片實例代碼

 更新時間:2017年06月06日 17:09:29   作者:pspgbhu  
本篇文章主要介紹了nodejs利用ajax實現(xiàn)網(wǎng)頁無刷新上傳圖片實例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下

通常情況下上傳圖片是要通過提交form表單來實現(xiàn)的,但是這又不可避免的產(chǎn)生了網(wǎng)頁轉(zhuǎn)。

利用ajax技術(shù)和FormData()對象可以有效的解決這個問題

廢話不多說 直接上關(guān)鍵代碼:

html部分

<div class="form-group">
  <label>File input</label>
  <input type="file" name="file" id="file">
  <p id="result"></p>
  <img id="img" src="">
</div>
<button id="upload" class="btn btn-default">提交</button>

這里注意input標簽的 type="file"

js部分:

function uploadFile(){
 var file = document.getElementById("file")
 var formData = new FormData();
 formData.append('file',file.files[0]);
 $.ajax({
  url: '/upload',
  type: 'POST',
  data: formData,
  // async: false,
  cache: false,
  contentType: false,
  processData: false,
  success: function(data){
   if(200 === data.code) {
    $('#result').html("上傳成功!");
    $('#img').attr('src',data.data);
   } else {
    $('#result').html("上傳失??!");
   }
   console.log('imgUploader upload success');
  },
  error: function(){
   $("#result").html("與服務(wù)器通信發(fā)生錯誤");
  }
 });
}

function postPage() {
    var uploada = document.getElementById('upload');
    uploada.addEventListener("click",function () {
      uploadFile();
    },false);
}

window.onload = function () {
  postPage();
}

nodejs部分:

var storage = multer.diskStorage({
  destination: function (req, file, cb){
    cb(null, './public/images')
  },
  filename: function (req, file, cb){
    cb(null, file.originalname)
  }
});
var upload = multer({
  storage: storage
});
router.post('/upload', upload.single('file'), function (req, res, next) {
  var url = 'http://' + req.headers.host + '/images/' + req.file.originalname
  res.json({
    code : 200,
    data : url
  })
});

multer是express官方推薦的文件上傳中間件。

文件上傳有以下方法

upload.single(‘file'), //適用于單文件上傳。
upload.array(‘file',num), //適用于多文件上傳,num為最多上傳個數(shù),上傳文件的數(shù)量可以小于num。

同時還提供了混合上傳,比如A類文件1個,B類文件2個。官方API有詳細說明。

file為上傳字段名稱,當使用form表單submit方式上傳時,必須與表單上傳的name屬性保持一致。

對上傳文件大小限制,名稱限制等均可在limits中加上,具體可加屬性,請參考官方api。

multer官方文檔

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Nodejs回調(diào)加超時限制兩種實現(xiàn)方法

    Nodejs回調(diào)加超時限制兩種實現(xiàn)方法

    這篇文章主要介紹了Nodejs回調(diào)加超時限制兩種實現(xiàn)方法的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • Node.js與MySQL交互操作及其注意事項

    Node.js與MySQL交互操作及其注意事項

    這篇文章給大家主要介紹了Node.js與MySQL交互操作及其注意事項,非常的詳細,有相同需求的小伙伴可以參考下
    2016-10-10
  • node使用async_hooks模塊進行請求追蹤

    node使用async_hooks模塊進行請求追蹤

    這篇文章主要介紹了node使用async_hooks模塊進行請求追蹤,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • NodeJs項目中關(guān)閉ESLint的方法

    NodeJs項目中關(guān)閉ESLint的方法

    ESLint是一個用來識別 ECMAScript 并且按照規(guī)則給出報告的代碼檢測工具,使用它可以避免低級錯誤和統(tǒng)一代碼的風(fēng)格。這篇文章主要介紹了NodeJs項目中關(guān)閉ESLint的方法,需要的朋友可以參考下
    2018-08-08
  • Node如何實現(xiàn)在瀏覽器預(yù)覽項目的所有圖片詳解

    Node如何實現(xiàn)在瀏覽器預(yù)覽項目的所有圖片詳解

    最近項目遇到了個需求,需要將存放圖片進行預(yù)覽,所以這篇文章主要給大家介紹了關(guān)于Node如何實現(xiàn)在瀏覽器預(yù)覽項目的所有圖片的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-01-01
  • npm?install?404問題解決方案

    npm?install?404問題解決方案

    這篇文章主要給大家介紹了關(guān)于npm?install?404問題解決的相關(guān)資料,npm install命令既可以下載服務(wù)器上的模塊,也可以在本地創(chuàng)建自己的模塊,需要的朋友可以參考下
    2023-08-08
  • Nodejs中怎么實現(xiàn)函數(shù)的串行執(zhí)行

    Nodejs中怎么實現(xiàn)函數(shù)的串行執(zhí)行

    今天小編就為大家分享一篇關(guān)于Nodejs中怎么實現(xiàn)函數(shù)的串行執(zhí)行,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • Node做中轉(zhuǎn)服務(wù)器轉(zhuǎn)發(fā)接口

    Node做中轉(zhuǎn)服務(wù)器轉(zhuǎn)發(fā)接口

    這篇文章主要介紹了Node做中轉(zhuǎn)服務(wù)器轉(zhuǎn)發(fā)接口的相關(guān)資料,需要的朋友可以參考下
    2017-10-10
  • 深入理解Node.js 事件循環(huán)和回調(diào)函數(shù)

    深入理解Node.js 事件循環(huán)和回調(diào)函數(shù)

    這篇文章主要介紹了深入理解Node.js 事件循環(huán)和回調(diào)函數(shù),詳細的介紹Node.js 事件循環(huán)和Node.js回調(diào)函數(shù),需要學(xué)習(xí)的可以參考一下。
    2016-11-11
  • Linux通過yum命令徹底刪除node.js并重新安裝

    Linux通過yum命令徹底刪除node.js并重新安裝

    這篇文章主要介紹了Linux通過yum命令徹底刪除node.js并重新安裝,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-11-11

最新評論