<!----html页面-->
html>
上传文件
文件:
文件详情
| 文件名 |
类型 |
大小(/kb) |
上传 |
下载 |
ajax页面
function ajax(obj) {
let {url,data}=obj;
if (XMLHttpRequest)
xhr = new XMLHttpRequest();
else if (ActiveXObject){
xhr = new ActiveXObject('Micorsoft.HTTP');
}
xhr.open('post', url, true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
//xhr.send(data);
let reader = new FileReader(), type = data.type;
console.log(type)
if (data.type.indexOf('text') > -1)//文本文件
reader.readAsText(data);
else if (data.type.indexOf('image') > -1)//图片文件
reader.readAsDataURL(data);
reader. = function () {
xhr.send(`name=${data.name}&type=${data.type}&file=${reader.result}`);
}
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status == 200 || xhr.status == 304) {
alert(xhr.responseText)
}
}
}
}
<!--后端服务器nodejs-->
const express = require('express'),
bodyparser = require('body-parser'),
fs = require('fs'),
app = express();
app.use(bodyparser.json({ limit: '50mb' }));
app.use(bodyparser.urlencoded({ limit: '50mb', extended: true }));
//判断目录是否存在
let url = __dirname + '/temp_up/';
fs.exists(url,(exists)=>{
if(!exists)fs.mkdir(url);
})
app.post('/upload', (req, res) => {
res.setHeader("Access-Control-Allow-Origin", "*");
let {name,type,file}=req.body;
if (type.includes('text')){
fs.writeFile(url+name,file,'utf-8',(err)=>{
if(err)console.log('写入失败!')
})
}else if(type.includes('image')){
file = file.substring(23);
fs.writeFile(url+name, file, 'base64', (err) => {
//没有报错,图片不正显示,why???
if (err) console.log(err)
})
}
res.send('success!')
})
app.listen(7000, () => {
console.log('server running on 7000....');
})
//重点在服务端代码中,图片文件读取后写入文件显示不出来,怎么办????