通常情况下上传图片是要通过提交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 图片预览和上传的示例代码
# 上传
# 文件上传
# 表单
# 适用于
# 最多
# 可在
# 详细说明
# 不可避免
# 多说
# 来实现
# 上传图片
# 请参考
# 解决这个问题
# 大家多多
# 这又
# 发生错误
# 等均
# 情况下
# 产生了
相关文章:
宝华建站服务条款解析:五站合一功能与SEO优化设置指南
如何快速查询域名建站关键信息?
建站之星代理商如何保障技术支持与售后服务?
Thinkphp 中 distinct 的用法解析
如何在云主机上快速搭建网站?
如何使用Golang安装API文档生成工具_快速生成接口文档
制作电商网页,电商供应链怎么做?
香港服务器网站卡顿?如何解决网络延迟与负载问题?
名字制作网站免费,所有小说网站的名字?
购物网站制作公司有哪些,哪个购物网站比较好?
网站制作知乎推荐,想做自己的网站用什么工具比较好?
建站之星后台密码遗忘或太弱?如何重置与强化?
,网站推广常用方法?
长沙企业网站制作哪家好,长沙水业集团官方网站?
建站之星免费版是否永久可用?
宝塔建站助手安装配置与建站模板使用全流程解析
,柠檬视频怎样兑换vip?
如何在云主机快速搭建网站站点?
建站主机是否属于云主机类型?
制作旅游网站html,怎样注册旅游网站?
如何在IIS管理器中快速创建并配置网站?
C#怎么使用委托和事件 C# delegate与event编程方法
网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?
网站制作员失业,怎样查看自己网站的注册者?
建站之星与建站宝盒如何选择最佳方案?
专业公司网站制作公司,用什么语言做企业网站比较好?
文字头像制作网站推荐软件,醒图能自动配文字吗?
,网页ppt怎么弄成自己的ppt?
如何在IIS中新建站点并配置端口与IP地址?
北京制作网站的公司,北京铁路集团官方网站?
建站之星安装步骤有哪些常见问题?
建站之星如何优化SEO以实现高效排名?
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
如何在Ubuntu系统下快速搭建WordPress个人网站?
已有域名能否直接搭建网站?
建站DNS解析失败?如何正确配置域名服务器?
如何通过宝塔面板实现本地网站访问?
如何快速生成ASP一键建站模板并优化安全性?
php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】
建站之星如何通过成品分离优化网站效率?
Bpmn 2.0的XML文件怎么画流程图
保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?
阿里云网站制作公司,阿里云快速搭建网站好用吗?
用v-html解决Vue.js渲染中html标签不被解析的问题
如何通过虚拟机搭建网站?详细步骤解析
如何做静态网页,sublimetext3.0制作静态网页?
重庆市网站制作公司,重庆招聘网站哪个好?
免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?
济南企业网站制作公司,济南社保单位网上缴费步骤?
*请认真填写需求信息,我们会在24小时内与您取得联系。