宝塔部署node后使用pm2管理上传文件路径失效问题
如何进行文件上传? node上传文件 + vue3 + elementPlus 组件封装
在本地或者以宝塔终端的形式允许 上传后是没问题的,直接默认对multer直接写入路径就可以了
const multer = require('multer')
const upload = multer({ dest: './public/avataruploads/' })
但是使用了pm2时 一般会在启动的文件当中作为图片的路径,这时候要修改路径
例如我的路径是以www文件进行启动的,这时候上传后 只会在bin目录下创建一个public/avataruploads文件,这时候因为路径发生了改变图片也不会正常显示

如果想要回到server/public下就需要导入path模块,以当前的路径开始 拼接好后面的路径,具体可以参考自己项目的文件资源路径。
var path = require('path');
const upload = multer({ dest: path.join(__dirname, '../../public/avataruploads/') })
修改后记得重启pm2管理
相关文章:
宝塔部署node后使用pm2管理上传文件路径失效问题
如何进行文件上传? node上传文件 vue3 elementPlus 组件封装 在本地或者以宝塔终端的形式允许 上传后是没问题的,直接默认对multer直接写入路径就可以了 const multer require(multer) const upload multer({ dest: ./public/avataruploads/ }) …...
postman-pre-request-scripts使用
一、场景 二、定义模拟接口 using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using SaaS.Framework.DataTransfer; using System.Threading.Tasks;namespace SaaS.KDemo.Api.Controllers {[Route("api/[co…...
uniapp Echart X轴Y轴文字被遮挡怎么办,或未能铺满整个容器
有时候布局太小,使用echarts,x轴y轴文字容易被遮挡,怎么解决这个问题呢,或者是未能铺满整个容器。 方法1: 直接设置 containLabel 字段 options: { grid: { containLabel: true, },} 方法2: 间接设置,但是…...
学习路之PHP--laravel DingoApi
一、安装 1.进入项目目录,执行composer安装命令 composer require dingo/api 如果下载超时,换阿里云源: composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ 2.使用以下命令可以发布 API 的配置文件到 confi…...
项目篇——java文档搜索引擎
Java 文档搜索引擎 文章目录 Java 文档搜索引擎一、分词二、完成parser 类2.1、排除非html文件2.2、解析html以下是解析 HTML 标题的方法以下是解析 对应的 URL以下是解析 HTML的正文: 补充:倒序索引 三、实现 index 类3.1、实现索引结构3.2、索引中新增…...
5.2 磁盘CRC32完整性检测
CRC校验技术是用于检测数据传输或存储过程中是否出现了错误的一种方法,校验算法可以通过计算应用与数据的循环冗余校验(CRC)检验值来检测任何数据损坏。通过运用本校验技术我们可以实现对特定内存区域以及磁盘文件进行完整性检测,…...
企业内部安全与风控管理图解
企业内部安全说外部安全,企业领导者都非常关注,由于各方面原因,。。。力不从心,妥协! 方向: 1、制度 结合企业实情,编制企业安全管理制度 2、硬件 处理常规硬件外观,加壳与锁定、…...
vscode基于cmake安装opencv库
一、安装相关依赖库 首先更新源 sudo apt update安装相关包 sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libjasper若是报错:无法定位到 libjasper软件包 则依次执行以下命令 sud…...
Web 器学习笔记(基础)
Filter 过滤器 概念:表示过滤器,是 JavaWeb 三大组件(Servlet、Filter、Listener)之一 作用:顾名思义可以过滤资源的请求,并实现特殊的需求 Filter 接口及它核心的 doFilter() 方法(执行前就是…...
uniapp中vue3使用uni.createSelectorQuery().in(this)报错
因为VUE3中使用setup没有this作用域,所以报错 解决办法:使用getCurrentInstance()方法获取组件实例 import { getCurrentInstance } from vue;const instance getCurrentInstance(); // 获取组件实例 const DOMArr uni.createSelectorQuery().in(ins…...
k8s-部署
1.k8s 集群与部署 更改所有主机名字和解析 k8s1 192.168.25.11 reg.westos.org,habbor 仓库 k8s2 192.168.25.12 master,k8s 集群控制节点 k8s3 192.168.25.13 node,k8s 集群工作节点 k8s4 192.168.25.14 node,k8s 集群工作节点 所有节…...
Arduino驱动MMA7260三轴加速度传感器(惯性测量传感器篇)
目录 1、传感器特性 2、控制器和传感器连线图 3、驱动程序 Arduino驱动MMA7260三轴加速度传感器芯片,可以应用到摩托车和汽车放倒报警、遥控航模、游戏手柄、人形机器人跌倒检测、硬盘冲击保护、倾斜度测量等场合。 1...
奇舞周刊第507期:通过 View Transition API 在状态之间添加丰富的过渡动画
记得点击文章末尾的“ 阅读原文 ”查看哟~ 下面先一起看下本期周刊 摘要 吧~ 奇舞推荐 ■ ■ ■ 通过 View Transition API 在状态之间添加丰富的过渡动画 W3C 2023 年度全球技术大会 (TPAC2023) 于今年9月 11 - 15 日召开。W3C CSS 工作组成员 Bramus Van Damme(Google) 为本届…...
如何通过技术变现
技术变现是指将技术转化为实际价值的过程。以下是几种常见的技术变现方式: 软件开发与销售:根据市场需求开发软件,并将其销售给需要的企业或个人。专利许可与授权:将技术成果申请专利,通过专利许可和授权给企业使用&a…...
高效查询大量快递信息,轻松掌握技巧
在如今快节奏的生活中,快递已经成为我们日常不可或缺的一部分。然而,对于一些忙碌的人来说,单个查询每一个快递单号可能会浪费太多时间。因此,我们需要一款可以帮助我们批量查询快递的软件。 在市场上,有很多款专门用于…...
iperf3: error - unable to connect to server: No route to host 但嵌入式Linux设备
起因 需要测试WIFI设置为802.11n制式能否输出40MHZ带宽去做CE认证 需要一台设备WIFI 设置为STA模式 一台设备WIFI设置为AP模式 用STA模式的设备去连接AP模式的设备才能产生40MH带宽 起初用了一台设备做STA模式设备(设备A)来测试没问题了,要换一台设备做STA设备(设备…...
OpenCV自学笔记十七:傅里叶变换
1、Numpy实现傅里叶变换 傅里叶变换(Fourier Transform)是一种将信号从时域转换到频域的数学变换。它将一个连续或离散的时域信号分解为一组正弦和余弦函数的复合。 在Python中,可以使用NumPy库来实现傅里叶变换。具体步骤如下:…...
uniapp如何判断是哪个(微信/APP)平台
其实大家在开发uniapp项目的时候长长会遇到这样一个问题,就是针对某些小程序,没发去适配相关的功能,所以要针对不同的平台,进行不同的处理。 #ifdef : if defined 仅在某个平台编译 #ifndef : …...
网络安全——(黑客)自学
想自学网络安全(黑客技术)首先你得了解什么是网络安全!什么是黑客!!! 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队…...
一拖三快充线(USB-C转三充)的解决方案--LDR6020P
DR6020P 是带有 3 组 6 路 DRP USB-C 及 PD 通信协议处理模块和 USB2.0 Device 功能的 16 位 RISC MCU,内置 8K16 位 MTP 程序存储器(可烧录 1000 次),512 字节的数据存储器(SRAM)。内置 LDO 5V 输出&#…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...
大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...
《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...
Golang——7、包与接口详解
包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...
通过MicroSip配置自己的freeswitch服务器进行调试记录
之前用docker安装的freeswitch的,启动是正常的, 但用下面的Microsip连接不上 主要原因有可能一下几个 1、通过下面命令可以看 [rootlocalhost default]# docker exec -it freeswitch fs_cli -x "sofia status profile internal"Name …...
消息队列系统设计与实践全解析
文章目录 🚀 消息队列系统设计与实践全解析🔍 一、消息队列选型1.1 业务场景匹配矩阵1.2 吞吐量/延迟/可靠性权衡💡 权衡决策框架 1.3 运维复杂度评估🔧 运维成本降低策略 🏗️ 二、典型架构设计2.1 分布式事务最终一致…...
leetcode_69.x的平方根
题目如下 : 看到题 ,我们最原始的想法就是暴力解决: for(long long i 0;i<INT_MAX;i){if(i*ix){return i;}else if((i*i>x)&&((i-1)*(i-1)<x)){return i-1;}}我们直接开始遍历,我们是整数的平方根,所以我们分两…...
