学node的一点小笔记(十二) node+express上传文件,自定义路径

2023-11-07

upload.js

var express = require( 'express');
var app = express();
var fs = require( 'fs');

//用于解析数据
var bodyParser = require( 'body-parser');
//上传文件中间件
var multer = require( 'multer');

app. use( express. static( 'static'));
app. use( bodyParser. urlencoded({ extended: false}));
app. use( multer({ dest: '/tmp/'}). array( 'image'));

app. get( '/upload.html', function( req, res){
res. sendFile( __dirname + '/' + "upload.html")
})

app. post( '/upload', function( req, res){
console. log( req. files[ 0]); //上传的文件信息
//文件名
var des_file = __dirname + "/" + req. files[ 0]. originalname;

fs. readFile( req. files[ 0]. path, function( err, data){
fs. writeFile( des_file, data, function( err){
if( err){
console. log( err)
} else{
response ={
message: 'File uploaded successfully',
filename:req. files[ 0]. originalname
}
//获取临时路径
var tmp_path = req. files[ 0]. originalname;

//指定文件上传之后的存储目录
var target_path = 'D:/my/node/static/images/'+ req. files[ 0]. originalname;

//移动文件到你想上传的目录
fs. rename( tmp_path, target_path, function( err){
if( err){
//抛出异常
console. log( err)
} else{
console. log( '移动成功')
}
})
}
console. log( response);
res. end( JSON. stringify( response))
})
})
})
var server = app. listen( 8082, function( req, res){
var host = server. address(). address;
var port = server. address(). port;
console. log( 'running at http://%s:%s', host, port)
})


upload.html

<html>
<head>
<title>文件上传 </title>
</head>
<body>
<h3>文件上传: </h3>
选择一个文件上传: <br/>
<!-- application/x-www-form-urlencoded  在发送前编码所有字符(默认)
multipart/form-data 不对字符编码。 在使用包含文件上传控件的表单时,必须使用该值。
text/plain  空格转换为 "+" 加号,但不对特殊字符编码。 -->
<form action= "/upload" method= "post" enctype= "multipart/form-data" >
<input type= "file" name= "image" >
<br />
<input type= "submit" value= "上传" />
</form>
</body>
</html>


教程上只给了上传的功能,自己加上了定义目录的功能,这个是单个图片上传,多个的话需要循环一下。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

学node的一点小笔记(十二) node+express上传文件,自定义路径 的相关文章

  • 智慧PG集成开发平台pgting-cli发布了

    介绍 两周前我们发布了智能页面搭建平台 智慧PG pgting 深受用户青睐 很多用户尝试了在线开发组件 为了方便用户定制开发组件和组件共享 智慧PG设计之初就考虑了组件定制开发问题 为此 我们设计和研发了智慧PG集成工作台pgting c
  • 【node】10、express模块搭建服务

    express模块是一个外部引入模块 不是node内部自身的模块 所以需要下载express模块才能引入 下载express之前需要初始化项目文件 npm init y 初始化后安装express npm install express 安
  • 仿叮咚买菜开源代码

    1 预览 1 前台 http dingdong nodebook top github地址 https github com cgq001 dingdong 2 后台管理 http dingdong admin nodebook top g
  • Node处理csv文件(利用csv-parse读取指定字符串内的文件片段)

    需求 读取一个csv文件 需要从指定字符串开始读取至指定字符串结束 由于csv文件可能使用不同环境打开编辑过 末尾包含很多多余的分隔逗号 去除这些逗号 使用 Stream const parse require csv parse cons
  • node.js和npm的关系

    一 npm是什么 当一个网站依赖的js代码越来越多 程序员发现这是一件很麻烦的事情 去 jQuery 官网下载 jQuery 去 BootStrap 官网下载 BootStrap 去 Underscore 官网下载 Underscore 有
  • nodejs,zip压缩版安装与配置

    下载zip包 下载 Node js 解压 将文件解压到要安装的位置 并新建两个目录node global npm全局安装位置node cache npm 缓存路径 配置环境变量 NODE PATH D Program Files node
  • Koa-router异步返回ctx.body失效的问题

    情景复现 router put category id ctx next gt const data ctx request body db updateCategoryById ctx params id data then doc gt
  • token的生成与验证

    写在前面 最近在写自己毕业的东西 由于采用的是前后端分离的写法 为了方便写使用的是跨域的模式 所以cookie session就不好用了 所以记录一下token吧 夜太深了 就简单写一下用法吧 官方文档写的很全了 使用场景 用户成功登陆之后
  • 在node中使用模板引擎---art-template

    art template是一个简约 超快的模板引擎 它不仅可以使用在浏览器中 也可以使用在node中 模板引擎最早是使用于服务器端 后来才发展到了前端 首先是它的安装 我们可以在官方文档中看到 它的安装只需要一行命令 为了方便 下面是官网文
  • npm start 作用

    在配置phonecat项目时需要运行npm start在本地配置一个服务器环境 npm start首先会安装一系列的必要程序 这些程序依赖package json中的内容 package json中的内容详解如下 依赖包介绍 在克隆项目之后
  • 在node中使用es7

    今天学写了体验异步的终极解决方案 ES7的Async Await这篇文章 发现作者是用 es7 的语法写 node 所以顺便学习了一下如何在 node 中使用 es7 的语法 记录一下 首先安装 babel cli yarn add bab
  • Node利用connect中间件 及bodyParser处理文件上传

    1 html
  • Node =》 nodemon

    在编写调试Node js的时候 如果修改了项目的代码 则需要频繁的手动close掉 然后再重新启动 非常频繁 现在可通过nodemon这个工具 能够监听项目文件的变动 当代码被修改后 nodemon会帮我们重新启动项目 极大方便了开发和调试
  • Nginx常用命令以及升级(window)

    nginx Windows作为标准控制台应用程序 不是服务 运行 可以使用以下命令对其进行管理 start nginx 启动Nginx nginx s stop fast shutdown 快速停止 nginx s quit gracefu
  • npm指令执行前执行自定义代码

    1 基本逻辑 npm start执行前执行node bin wb handle scripts wb node bin wb handle npm start wb handle源码 删除deleteNodeModules配置的最后一级目录
  • 初识pnpm

    初识pnpm 介绍 pnpm和npm yarn一样 都是包管理器 但是pnpm节约磁盘空间并且安装很快 所有的报会存储在硬盘的同一个位置 多个项目使用了同一个包时 在pnpm中他们是公用的 只会存储一遍 下次需要用到这个包时就会从硬盘中查找
  • 【node】12、Koa实现简单爬虫案例

    效果图如下 首先我们新建文件夹 进入终端 初始化node项目 npm init y 安装koa搭建服务模块 npm install koa 安装superagent发送请求模块 npm install superagent 安装cheeri
  • Node.js爬虫实战:搜狗图片爬取

    说在前面 当我们在网上寻找图片时 经常会遇到需要批量下载搜索结果中的图片的情况 而搜狗作为中国颇具影响力的搜索引擎之一 其图片搜索功能提供了丰富多样的图片资源 在这种情况下 我们希望能够通过编程的方式 批量下载搜狗图片搜索结果中的图片 以便
  • Node.js爬虫实战:百度图片爬取

    说在前面 网络爬虫是一种自动化工具 能够模拟人类在互联网上浏览和提取信息的行为 它的应用范围广泛 包括数据采集 信息监控 搜索引擎优化等方面 而在数据抓取和处理中 获取图片资源往往是一个常见的需求 本文将介绍如何使用Node js和相关库构
  • Node.js 工作线程与子进程:应该使用哪一个

    Node js 工作线程与子进程 应该使用哪一个 并行处理在计算密集型应用程序中起着至关重要的作用 例如 考虑一个确定给定数字是否为素数的应用程序 如果我们熟悉素数 我们就会知道必须从 1 遍历到该数的平方根才能确定它是否是素数 而这通常非

随机推荐

  • 开源协议许可证浅析

    如今开源的软件已经越来越被广泛使用 各种专利纠纷也越来越多 工作上要求对开源协议的理解也很迫切 做技术架构是每一个技术人员最渴望的职责 但要做好初级的技术架构工作首先要对各种各样的开源协议有深入了解 知道什么开源软件是工作在什么协议之下 对
  • vue+ElementUI el-select实现下拉选择表格组件(2023-09-04 TSelectTable组件实现虚拟滚动,解决不分页数据量大渲染DOM过多而卡顿问题)

    2023 09 04 TSelectTable组件实现虚拟滚动 解决不分页数据量大渲染DOM过多而卡顿问题 2023 08 21 解决TSelectTable组件表单编辑回显设置defaultSelectVal 无效 一 最终效果 二 代码
  • 智能语音机器人竞品调研

    一 腾讯云 智能客服机器人 链接地址 智能客服机器人 在线智能客服 智能客服解决方案 腾讯云 二 阿里云 智能语音机器人 链接地址 智能对话机器人 阿里云帮助中心 链接地址 智能外呼机器人的业务架构 智能外呼机器人 阿里云帮助中心 三 火山
  • Java——类****是公共的,应在****的文件中声明

    源代码如下所示 public class HelloWord public static void main String args System out println HelloWord 错误如下图所示 解决方法 将第一行的类名 命名为
  • Pybooks:这十本Python编程语言的入门书籍入门必看!

    这个好像没有在微信发过图文版的 补一个 大部分介绍摘自京东等网站 Python基础教程 评语 Python入门佳作 经典教程的全新修订 10个项目引人入胜 Python基础教程 第2版 修订版 是经典的Python入门教程 层次鲜明 结构严
  • 交换机端口镜像及Wireshake抓包

    1 首先配置交换机 先将交换机断开与其他交换机连接的网线 保证电脑端只与这一个交换机通信 2 之前配置过交换机的 如果记得IP 可以直接通过交换机的IP进行登录 3 如果忘记交换机的IP 则可以重置 交换机上有一个reset按键 重置后 我
  • SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@xxx] was not registered for synchro

    目录 1 报错场景 2 问题原因及解决办法 1 报错场景 在搞SpringBoot项目的时候 把Mybatis打印日志的配置打开后 发现每条Sql打印的时候都会在前面打印如下的信息 强迫症受不了 得查查为什么 Creating a new
  • sql server数据库备份单个表的结构和数据生成脚本

    文章摘自 博客园随笔 https www cnblogs com wmqiang p 10437607 html 1 使用场景 sql server数据库备份单个表的结构和数据 在我们要修改正式系统的数据的一天或者多条某些数据时候 要执行u
  • 在yoloV5-6 中使用tensorboard

    使用 在train文件中加入 import torch from torch utils tensorboard import SummaryWriter writer SummaryWriter log dir project train
  • Ionic3开发教程 - 更新(5)

    Ionic3开发系列教程Ionic3开发教程 环境准备 1 Ionic3开发教程 开发 2 Ionic3开发教程 发布Android版本 3 Ionic3开发教程 发布IOS版本 4 Ionic3开发教程 更新 5 App新功能开发完成后
  • 示波器的使用总结

    任何好的示波器系统的关键点在于精确地重建波形的能力 称为信号完整性 不同的系统和不同性能的示波器 有不同的实现最高信号完整性的能力 探头也对测量系统的信号完整性有影响 数字示波器 DSO 基本结构 采样 gt A D转换 gt 信号分离器
  • 使用TypeScript重构Axios:让你的项目更加完善

    引言 如果你使用过或者了解过JavaScript 那么在使用其开发的过程中 势必会了解到Axios 我们都知道 它带来便捷与效率的同时 js本身也会伴随着一些不大不小的问题 当用JavaScript开发大型项目时 因为没有类型检查 所以很多
  • WebSocket的简单入门使用

    WebSocket WebSocket介绍 Java整合WebSocket SpringBoot整合WebSocket WebSocket介绍 1 什么是WebSocket WebSocket 是HTML5一种新的协议 它实现了浏览器与服务
  • C++面试题

    1 中高级C 工程师 2 空类占一个字节 含有虚函数的类占4字节 复制构造函数要传引用 3 为下面代码编写赋值运算符 class CMyString public CMyString char pData nullptr CMyString
  • 家用计算机 阵列,家用电脑如何建立RAID?

    组建RAID系统攻略 RAID全称为 Redundant Array of Inexpensive Disks 中文意思是 独立冗余磁盘阵列 简称磁盘阵列 简单地说 RAID是一种把多块独立的硬盘 物理硬盘 按不同方式组合起来形成一个硬盘组
  • 【Python】保姆级万字讲解:Python中的 pip 和 conda 的理解

    文章目录 一 pip的理解 1 1 安装 1 2 如何使用 1 3 升级 1 4 安装某个版本的包 1 5 卸载或者是更新包 1 6 查看某个包的信息 1 7 查看需要被升级的包 1 8 查看兼容问题 1 9 指定国内源来安装 1 10 下
  • 读懂Word2Vec之Skip-Gram

    本教程将介绍Word2Vec的skip gram神经网络体系结构 我这篇文章的目的是跳过对Word2Vec的一般的介绍和抽象见解 并深入了解其细节 具体来说 我正在深入skipgram神经网络模型 模型介绍 skip gram神经网络模型其
  • eclipse 安装后没有server 没有tomcat

    下载的是eclipse 4 7 M7 但是下载后要配置tomcat时 找不到tomcat 配置过程 1 window gt gt priferences gt gt server gt gt runtime environment gt g
  • JDBC连接数据库_增删改查

    JDBC基础操作 步骤 第一步 下载驱动 第二步 导入驱动 第三步 加载驱动 第四步 驱动管理器运行 获取链接Connection 第五步 通过链接Connection创建数据库操作对象Statement 第六步 通过数据库操作对象Stat
  • 学node的一点小笔记(十二) node+express上传文件,自定义路径

    upload js var express require express var app express var fs require fs 用于解析数据 var bodyParser require body parser 上传文件中间