HTML5——XMLHttpRequest 2:基于Node.js的用户修改头像

这篇博客介绍了如何使用HTML5的XMLHttpRequest 2特性,结合Node.js和相关库,实现用户修改头像的功能。内容包括Node.js环境配置、项目初始化、框架安装、路由配置、页面实现以及详细步骤。在实现过程中,需要注意数据类型匹配和错误处理,如400 Bad Request错误。
摘要由CSDN通过智能技术生成

Day13

今日份内容:使用XMLHttpRequest 2制作基于Node.js的用户修改头像

在HTML5规范中对XMLHttpRequest对象的send()方法进行改良后,其可以发送字符串、document对象、表单数据、Blob对象、文件以及ArrayBuffer对象。

XMLHttpRequest 2

  • 了解XMLHttpRequest与服务器异步交互
  • 使用XMLHttpRequest向服务器提交数据

内容

  1. 配置Node.js环境
  2. 项目初始化
  3. 安装body-parser、connect-multiparty、express框架
  4. 路由配置实现
  5. 页面实现

代码

//项目的文件入口,包含路由配置等。
var express = require('express');
//connect-multiparty用于解决文件上传问题
var mutipart = require('connect-multiparty');

var mutipartMiddeware = mutipart();
var app = express();
//将静态文件目录设置为"根目录+/public"
app.use(express.static('public'));
//修改临时文件储存位置
app.use(mutipart({
   
	uploadDir: './public/uploadFolder'
}));
//设置HTTP服务监听的端口号
app.set('port', process.env.PORT || 3000);
app.listen(app.get('port'), function() {
   
	console.log("Express started on localhost:" + app.get('port') + '; press Ctrl-C to terminate.');
});
//以下为路由配置
//1.当访问localhost:3000时。默认访问的页面
app.get('/', function(req, res) {
   
	res.type('text/html');
	res.sendFile(__dirname + '/HTML5Camera&Upload.html');
});
//2.当用户使用post方式提交表单到/upload服务时,读取表单内容并将文件上传
app.post('/upload', mutipartMiddeware, function(req, res) {
   
	console.log(req.body.name + "\n=========\n");
	//这里打印可以看到接收文件的信息
	console.log(req.files.file.path + "\n=========\n");
	var jsonObject = {
   };
	//默认路径为:public\uploadFolder\aYm65V_E0Zn1ho5lDd,需要将public\部分去掉
	var path = req.files.file.path;
	path = path.substring(path.indexOf("\\"));
	console.log(path);
	jsonObject.image = path;
	jsonObject.msg = "文件上传成功!"
	//给浏览器返回成功提示
	res.send(jsonObject);
});

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>拍照上传</title>
		<link rel="stylesheet" type="text/css" href="styles/css/main.css" />
	</head>
	<body>
		<div class="container">
			<div class="header">
				<div class="head-img">
					<img id="uploadImage" src="styles/images/pdx2.jpeg">
					<div class="
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

is_Del

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值