全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

nodejs利用ajax实现网页无刷新上传图片实例代码

通常情况下上传图片是要通过提交form表单来实现的,但是这又不可避免的产生了网页转。

利用ajax技术和FormData()对象可以有效的解决这个问题

废话不多说 直接上关键代码:

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("与服务器通信发生错误");
  }
 });
}

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为最多上传个数,上传文件的数量可以小于num。

同时还提供了混合上传,比如A类文件1个,B类文件2个。官方API有详细说明。

file为上传字段名称,当使用form表单submit方式上传时,必须与表单上传的name属性保持一致。

对上传文件大小限制,名称限制等均可在limits中加上,具体可加属性,请参考官方api。

multer官方文档

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# nodejs  # ajax上传图片  # ajax  # 上传文件  # Nodejs+angularjs结合multiparty实现多图片上传的示例代码  # NodeJS实现图片上传代码(Express)  # 详解nodejs实现本地上传图片并预览功能(express4.0+)  # ajax +NodeJS 实现图片上传实例  # angular2+nodejs实现图片上传功能  # 图片上传之FileAPI与NodeJs  # nodejs 整合kindEditor实现图片上传  # 轻松创建nodejs服务器(10):处理上传图片  # nodejs 图片预览和上传的示例代码  # 上传  # 文件上传  # 表单  # 适用于  # 最多  # 可在  # 详细说明  # 不可避免  # 多说  # 来实现  # 上传图片  # 请参考  # 解决这个问题  # 大家多多  # 这又  # 发生错误  # 等均  # 情况下  # 产生了 


相关文章: b2c电商网站制作流程,b2c水平综合的电商平台?  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  如何快速搭建高效香港服务器网站?  c# 服务器GC和工作站GC的区别和设置  如何在VPS电脑上快速搭建网站?  如何快速搭建个人网站并优化SEO?  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?  如何选购建站域名与空间?自助平台全解析  如何在云服务器上快速搭建个人网站?  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  建站org新手必看:2024最新搭建流程与模板选择技巧  做企业网站制作流程,企业网站制作基本流程有哪些?  网站制作软件有哪些,制图软件有哪些?  如何通过虚拟主机空间快速建站?  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  C#如何序列化对象为XML XmlSerializer用法  学校为何禁止电信移动建设网站?  企业网站制作费用多少,企业网站空间一般需要多大,费用是多少?  如何在万网ECS上快速搭建专属网站?  如何选择美橙互联多站合一建站方案?  香港服务器选型指南:免备案配置与高效建站方案解析  如何通过远程VPS快速搭建个人网站?  小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?  建站之星图片链接生成指南:自助建站与智能设计教程  建站主机系统SEO优化与智能配置核心关键词操作指南  威客平台建站流程解析:高效搭建教程与设计优化方案  建站之星下载版如何获取与安装?  定制建站如何定义?其核心优势是什么?  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?  php json中文编码为null的解决办法  如何快速上传建站程序避免常见错误?  如何获取免费开源的自助建站系统源码?    在线教育网站制作平台,山西立德教育官网?  代购小票制作网站有哪些,购物小票的简要说明?  建站之星如何通过成品分离优化网站效率?  怀化网站制作公司,怀化新生儿上户网上办理流程?  青浦网站制作公司有哪些,苹果官网发货地是哪里?  建站DNS解析失败?如何正确配置域名服务器?  建站中国官网:模板定制+SEO优化+建站流程一站式指南  电商网站制作公司有哪些,1688网是什么意思?  定制建站平台哪家好?企业官网搭建与快速建站方案推荐  如何选择域名并搭建高效网站?  建站主机数据库如何配置才能提升网站性能?  如何快速搭建安全的FTP站点?  建站之星如何助力企业快速打造五合一网站?  建站之星安装后如何自定义网站颜色与字体?  北京建设网站制作公司,北京古代建筑博物馆预约官网? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。