nodejs + express + 上传图片功能

1.前台表单

<form method="post" enctype ="multipart/form-data">
	<input type="file" name="pics"/>
	<input type="submit" value="提交" />
</form>

2.路由(routes/index.js)

app.post('/upload',function (req,res){
	var _files = req.files.pics;
	var item ,_name ,_tmp;
	item = _files, _name=item.name;
	if (_name && item.path) {//这里需要判断文件名称和路径是否为空
		var tmpPath = item.path, type = item.type ,extension_name = '',
		tmp_name = (Date.parse(new Date()) / 1000) + '' + (Math.round(Math.random() * 9999));//生成随机名称
		switch (type) {	//判断文件类型
			case 'image/pjpeg': extension_name = 'jpg';  break;
			case 'image/jpeg': extension_name = 'jpg'; break;
			case 'image/gif': extension_name = 'gif'; break;
			case 'image/png': extension_name = 'png'; break;
			case 'image/x-png': extension_name = 'png'; break;
			case 'image/bmp': extension_name = 'bmp'; break;
			default: if(_name.indexOf('.')<=0) return;//其他文件则默认上传
				else {
					_tmp = _name.split('.');
					extension_name = _tmp[_tmp.length-1]; break;
			}
		}
		tmp_name = tmp_name + '.' + extension_name,
		targetPath = 'public/upload/' + tmp_name,//设置上传路径
		is = fs.createReadStream(tmpPath),
		os = fs.createWriteStream(targetPath);
		util.pump(is, os, function() { 
			fs.unlinkSync(tmpPath); 
			console.log('upload success : ',targetPath);
			res.json({//设置返回值
				error : 0,
				url : 'upload/' + tmp_name,
				title : tmp_name,
				message : tmp_name
			});
		});
	};
});





  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值