html 上传
<form>
<input type="file">
</form>
<button>上传图片</button>
js
let but = document.querySelector('button');
let form = document.querySelector('form');
but.addEventListener('click', () => {
let Formdata = new FormData(form); //前端所需的函数
Formdata.append('file', form.children[0].files[0]);//获取form下的子元素
let xhr = new XMLHttpRequest();
xhr.open('POST', 'http://loalhost:8000/loadUp');
xhr.send(Formdata);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
console.log(xhr.response);
}
}
}
})
js 服务器的建立
说明一下,这里需要node 来加载express ,还需要下载mutiparty 模块
/**
上传
*/
const express = require('express');
const app = express();
//后端上传需要的
const multiparty = require('multiparty');
app.post('/loadUp', (request, response) => { //上传图片
let form = new multiparty.Form({
uploadDir: '你想要上传并存放的位置' //文件转存
});
form.parse(request, (err, fields, files) => {//fields: 上传普通的数据 ;file: 上传文件
console.log(fields, 'fields');
console.log(files, 'files');
})
response.setHeader('Access-Control-Allow-Origin', '*');//允许请求所有跨域
response.send("200");
})
app.listen(8000, () => {
console.log("8000端口启动");
})
html 下载
<img src="http://loalhost:8000/getImg" alt="">
js
//后端下载需要模块
const fs = require('fs');
app.get('/getImg', (request, response) => { //图片的下载
response.setHeader("Access-Control-Allow-Origin", "*");// 允许请求所有跨域 *
fs.readFile('下载图片的位置', (err, data) => {
console.log(data);
response.send(data);
})
app.listen(8000, () => {
console.log("8000端口启动");
})
})