前端部分
<template>
<div class="main">
<el-upload
class="avatar-uploader"
action="http://localhost:8888/uploadImg"
: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>
export default {
data() {
return {
imageUrl: ""
};
},
methods: {
upload(f) {
console.log(f);
let formData = new FormData();
formData.append("file", f.file);
this.$axios({
method: "post",
url: "http://localhost:8888/uploadImg",
data: formData
}).then(res => {
//上傳成功之后 顯示圖片
this.imageUrl = res.data.fileSqlUrl ;
});
}
}
};
</script>
<style></style>
node
const express = require("express");
const bodyParser = require("body-parser");
const app = express(); //返回一個服務(wù)
var mysql = require("mysql");
const path = require("path");
const path = require("path");
const multer = require("multer");
// 以上需要 npm install 下載一下
var connection = mysql.createConnection({
host: "120.77.********",
user: "sqlroot",
password: "*******",
port: 3306,
database: "sqlroot",
useConnectionPooling: true,
});
connection.connect(function (err) {
if (err) {
console.log("error");
}
console.log("connect success!");
});
// 建立數(shù)據(jù)庫連接
var fileSqlUrl = "http://localhost:8888/upLoad/";
var fileSqlName;
var storage = multer.diskStorage({
//設(shè)置 上傳圖片服務(wù)器位置
destination: path.resolve(__dirname, "./upload"),
//設(shè)置 上傳文件保存的文件名
filename: function (req, file, cb) {
// 獲取后綴擴展
let extName = file.originalname.slice(file.originalname.lastIndexOf(".")); //.jpg
// 獲取名稱
let fileName = Date.now();
fileSqlName = fileName + extName;
fileSqlUrl += fileSqlName;
// console.log(fileName + extName); //12423543465.jpg
cb(null, fileName + extName);
},
});
var fileFilter = function (req, file, cb) {
var acceptableMime = ["image/jpeg", "image/png", "image/jpg", "image/gif"];
// 限制類型
// null是固定寫法
if (acceptableMime.indexOf(file.mimetype) !== -1) {
cb(null, true); // 通過上傳
} else {
cb(null, false); // 禁止上傳
}
};
var limits = {
fileSize: "10MB", //設(shè)置限制(可選)
};
const imageUploader = multer({
fileFilter,
storage,
limits,
}).single("file"); //文件上傳預(yù)定 name 或者 字段
// 圖片
app.post("/uploadImg", imageUploader, (req, res) => {
console.log(imageUploader);
connection.query(
`insert into img values(0,'${fileSqlUrl}','${fileSqlName}')`,
(err, data) => {
if (err) {
res.send({ err: 1, msg: "增加數(shù)據(jù)失敗", success: false });
res.end();
} else {
res.send({ err: 0, msg: "添加成功", success: true, fileSqlUrl });
res.end();
}
}
);
});
app.use(express.static(__dirname + "/public"));
app.listen(8888, () => {
console.log("服務(wù)已經(jīng)啟動");
});
這樣圖片就保存在了upload的文件夾里面了
image.png