首页 > 其他分享 >ElementUI文件上传及服务器接口配置

ElementUI文件上传及服务器接口配置

时间:2023-02-06 13:33:44浏览次数:73  
标签:文件 ElementUI express upload multer file var 服务器 上传


后台服务器的搭建

入口文件

//server.js
const express = require('express')
const app = express()
const PORT = 4000
//引入路由 文件上传对应的路由
const upload = require('./upload')
//x-powered-by显示后台能使用哪种语言编写 app.disabled('x-powered-by');
//extended: false:表示使用系统模块querystring来处理,也是官方推荐的
//extended:tru:表示使用第三方模块qs来处理
app.use(express.urlencoded({ extended: true }));
app.use(upload) app.listen(PORT, (err) => {
if (!err) { console.log(`服务器启动了,地址为:http://localhost:${PORT}`) }
})

路由

var express = require('express');
var router = express.Router();
var fs = require('fs');
//引入multer处理文件
var multer = require('multer');
// 使用硬盘存储模式设置存放接收到的文件的路径以及文件名
var storage = multer.diskStorage({
destination: function (req, file, cb) {
// 接收到文件后输出的保存路径(若不存在则需要创建)
cb(null, 'upload/');
},
//filename用于确定文件夹中的文件名的确定
filename: function (req, file, cb) {
// 将保存文件名设置为 时间戳 + 文件原始名,比如 151342376785-123.jpg
cb(null, Date.now() + "-" + file.originalname);
}
});

// 创建文件夹
var createFolder = function(folder){
try{
// 测试 path 指定的文件或目录的用户权限,我们用来检测文件是否存在
// 如果文件路径不存在将会抛出错误"no such file or directory"
fs.accessSync(folder);
}catch(e){
// 文件夹不存在,以同步的方式创建文件目录。
fs.mkdirSync(folder);
}
};

var uploadFolder = './upload/';
createFolder(uploadFolder);

// 创建 multer 对象
var upload = multer({ storage: storage });

/* POST upload listing. */
router.post('/post', upload.single('file'), function(req, res, next) {
var file = req.file;
console.log('文件类型:%s', file.mimetype);
console.log('原始文件名:%s', file.originalname);
console.log('文件大小:%s', file.size);
console.log('文件保存路径:%s', file.path);
// 接收文件成功后返回数据给前端
res.json({res_code: '0'});
});

// 导出模块(在 app.js 中引入)
module.exports = router;

express服务器对于后台文件的处理需引入第三方中间件multer

安装multer:npm install --save multer

 

ElementUI( Upload )实现文件上传

[email protected] 版本脚手架使用npm i element-ui –S

在main.js文件中
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';

 

[email protected]版本脚手架需使用vue add element   文件会自动引入main.js文件

在*/.vue文件中
<template>
<div id="app">
<el-upload
class="upload-demo"
action="/api/post" // /api是因为配置了服务器代理
:on-preview="handlePreview"
:on-remove="handleRemove"
:before-remove="beforeRemove"
multiple
:limit="3"
:on-exceed="handleExceed"
>
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
</el-upload>
</div>
</template>

<script>
export default {
data() {
return {
};
},
methods: {
handleRemove(file, fileList) {
console.log(file, fileList);
},
handlePreview(file) {
console.log(file);
},
handleExceed(files, fileList) {
this.$message.warning(
`当前限制选择 3 个文件,本次选择了 ${
files.length
} 个文件,共选择了 ${files.length + fileList.length} 个文件`
);
},
beforeRemove(file, fileList) {
return this.$confirm(`确定移除 ${file.name}?`);
},
}
};
</script>

<style lang='stylus'></style>

 

标签:文件,ElementUI,express,upload,multer,file,var,服务器,上传
From: https://blog.51cto.com/u_14389461/6038987

相关文章

  • 服务器租用运行不起来什么情况
    1、客户操作失误造成服务器不能正常运行服务器的实际使用中,很多中小型企业级客户对服务器基本没有做日常维护,只是在需要对服务器进行操作的时由稍微懂点服务器租用技术......
  • GPU服务器Ubuntu环境配置教程及各种踩坑
    博主的GPU服务器快要过期了,为了让其发挥更多的光和热,博主打算将系统重装,来分别感受下不同系统下的GPU服务器。哈哈哈博主为了快速运行项目,在购买服务器时选择的是Pytorch1.......
  • Linux下NTP服务器配置
    (Linux下NTP服务器配置)一、环境配置1.NTP服务器NTP服务器版本:RedHatEnterpriseLinuxrelease8.0(Ootpa)NTP服务器IP:192.168.8.11/24NTP服务器hostname:node12.......
  • 云服务器租用要注意哪些事项
    1、用户群体我们要知道云服务器的受众是谁,也就是云服务器更加适合哪类用户群体。特别是在乎性价比的用户,因为云服务器的价格要比独立主机以及虚拟主机便宜,而且它的性......
  • 网页-超大文件上传-如何上传文件-大文件上传
    ​ 以ASP.NETCoreWebAPI 作后端 API ,用 Vue 构建前端页面,用 Axios 从前端访问后端 API,包括文件的上传和下载。 准备文件上传的API #region 文件上传......
  • 【服务器数据恢复】断电导致vsan存储逻辑架构故障,虚拟磁盘文件丢失,虚拟机组件异常的数
    服务器数据恢复环境&故障:某单位服务器配置一套vsan超融合基础架构,服务器一共有16块硬盘,固态盘和机械盘各8块,固态硬盘作为缓存盘使用。机房供电异常导致服务器非正常关机,管......
  • 手动搭建自己的nuget服务器及应用
    参考文章链接:https://www.cnblogs.com/Vincent-yuan/p/11129909.html(主要转载自这篇文章)https://blog.csdn.net/zgscwxd/article/details/88838807https://blog.csdn.ne......
  • Web-超大文件上传-如何上传文件-大文件上传
    ​ 一、概述 所谓断点续传,其实只是指下载,也就是要从文件已经下载的地方开始继续下载。在以前版本的HTTP协议是不支持断点的,HTTP/1.1开始就支持了。一般断点下载时才用......
  • 表单形式上传文件时为何必须设置enctype属性
    在制作浏览器上传文件的功能时,常常会在表单中设置enctype属性这是为什么呢?首先要了解的是:什么叫做编码技术,数字编码是只采用数字和有关特殊字符来表示数据和指令的编码。大......
  • PHP-超大文件上传-如何上传文件-大文件上传
    ​ 前段时间做视频上传业务,通过网页上传视频到服务器。视频大小小则几十M,大则1G+,以一般的HTTP请求发送数据的方式的话,会遇到的问题:1,文件过大,超出服务端的请求大小限制......