标签:除了 origin ima 扩展 hub outer tor for single
<template>
<div id="app">
<h3>头像上传</h3>
<el-upload
class="avatar-uploader"
action="http://localhost:3003/upLoad"
:show-file-list="false"
:http-request="upload"
>
<img v-if="imageUrl" :src="imageUrl" class="avatar">
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</div>
</template>
<script>
methods:{
upload(f){
let formData = new FormData()
formData.append('file', f.file)
axios({
method: 'post',
url: 'http://localhost:3003/upLoad',
data:formData
}).then(res =>{
//上传成功之后 显示图片
this.imageUrl = res.data.url
})
}
}
</script>
//app文件
const express = require('express')
const app = express()
//解决跨域
app.all('*',function (req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With');
res.header('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS');
if (req.method == 'OPTIONS') {
res.send(200);
}else {
next();
}
});
//引入router.js路由文件
const router = require('./router/router.js')
//暴漏静态资源文件 暴漏之后我们可以通过域名访问该文件下的资源
app.use(express.static('upload'))
app.use(router)
app.listen(3003, function(){
console.log('已经创建好服务器,可以连接了...')
})
//router.js文件
const express = require('express')
const router = express.Router()
const multer = require('multer')
//上传的文件保存在 upload
const storage = multer.diskStorage({
//存储的位置
destination(req, file, cb){
cb(null, 'upload/')
},
//文件名字的确定 multer默认帮我们取一个没有扩展名的文件名,因此需要我们自己定义
filename(req, file, cb){
cb(null, Date.now() + file.originalname)
}
})
//传入storage 除了这个参数我们还可以传入dest等参数
const upload = multer({storage})
router.post('/upLoad', upload.single('file'), (req, res) =>{
//给客户端返回图片的访问地址 域名 + 文件名字
//因为在 app.js文件里面我们已经向外暴漏了存储图片的文件夹 uploa
const url = 'http://localhost:3003/' + req.file.filename
res.json({url})
})
标签:除了 origin ima 扩展 hub outer tor for single
原文地址:https://www.cnblogs.com/HJ412/p/10912385.html