node - 上传文件并且修改名称
html
<!DOCTYPE html>
<html lang="en"> <head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head> <body>
<form action="http://127.0.0.1/dopost" enctype="multipart/form-data" method="POST">
姓名:<input type="text" name="name"> 性别:
<input type="radio" name="gender" value="男">男<input type="radio" name="gender" value="女">女 年龄:
<input type="number" name="age"> 图片:
<input type="file" name="img">
<input type="submit" value="提交">
</form>
</body> </html>
js
 const http = require('http');
 const formidable = require('formidable');
 const util = require('util');
 const fs = require('fs');
 const path = require('path');
 //创建服务器
 const server = http.createServer(function (req, res) {
     if (req.url == '/dopost' && req.method.toLowerCase() == 'post') {
         // 插件- 请搜索:https://www.npmjs.com/package/formidable
         let form = new formidable.IncomingForm();
         //设置文件上传存放地址
         form.uploadDir = './uploads';
         // 设置文件上传大小(默认20M)
         form.maxFileSize = 200 * 1024 * 1024;
         //执行里面的回调函数的时候,表单已经全部接收完毕了。
         form.parse(req, function (err, fields, files) {
             // 时间戳
             let timestamps = Math.round(new Date().getTime() / 1000).toString();
             // 扩展名
             let extname = path.extname(files.img.name);
             // 旧路径
             let oldPath = __dirname + '/' + files.img.path;
             // 老文件名
             let oldFileName = files.img.name;
             // 新路径(默认无扩展名,需要引入path里面的得到extname得到)
             let newPath = __dirname + '/uploads/' + getDate() + timestamps + extname;
             // 新文件名
             let newFileName = getDate() + random + extname;
             //改名api - http://nodejs.cn/api/fs.html#fs_fs_rename_oldpath_newpath_callback
             fs.rename(oldPath, newPath, function (err) {
                 if (err) throw Error('修改文件名失败!~');
                 console.log('修改前的文件名:', oldFileName, '修改后的文件名:', newFileName);
                 res.writeHead(200, { 'content-type': 'text/plain' });
                 res.end('成功!~');
             });
         });
     }
 });
 // 日期方法.
 function getDate() {
     let date = new Date();
     let year = date.getFullYear();
     let month = date.getMonth() + 1;
     let day = date.getDate();
     return year + '-' + month + '-' + day + '-'
 }
 server.listen(80, '127.0.0.1');
node - 上传文件并且修改名称的更多相关文章
- node 上传文件 路径 重命名等问题
		最近在学习node,想做一个简单的网站.首先想到的是上传文件的功能,查了下,发现有一个formidable模块,操作方便,便拿来尝试了一下,结果很纠结. 下载安装的就不用说了,用npm即可.说一下,自 ... 
- Struts2框架下的文件上传文件类型、名称约定
		Struts2框架下的文件上传机制:1.通过multipart/form-data form提交文件到服务器2.文件名是通过什么地方设置的?在strust2的FileUploadInterceptor ... 
- node 上传文件 http client to post file
		node做http client 发送post数据是很容易的事情,但要上传文件就不是太容易了主要是因为上传文件的报文和普通post是不太一样的 要了解http post可以看下这个 https://i ... 
- Django上传文件和修改date格式
		上传大文件的时候: 修改date数据: 
- node上传文件并在网页中展示
		一.需求 1.当用户请求http://domain/start时,可以看到一个欢迎页面,页面上有一个文件上传的表单. 2.用户可以选择一个图片并提交表单,随后文件将被上传到http://domain/ ... 
- js获取上传文件个数 以及名称
		<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ... 
- PHP上传文件限制修改
		php.ini里面查看如下行: upload_max_filesize post_max_size memory_limit 
- IOS上传文件开发
		IOS上传文件开发 在移动应用开发 文件形式上传是不可缺少的,近期把IOS这块文件上传文件代码简单的整理一下.假设大家有须要安卓这边的代码,本人也能够分享给大家! QQ群:74432915 ... 
- ThinkPHP3上传文件中遇到的问题
		在用ThinkPHP3上传图片的开发过程中遇到如下几个问题: 上传根目录不存在!请尝试手动创建:./Uploads/: 上传的图片,中文名称乱码: 上传文件时会自动生成一个以当前日期命名的文件夹,并将 ... 
随机推荐
- 浅谈_IDEA导入Eclipse的Web项目
			相信很多同学在工作中都会遇到将一个Eclipse的Web项目导入IDEA的情景,这里浅谈一下具体的操作流程 一:Import Project,选择要导入的项目 二:选择以Eclipse模型的方式导入 ... 
- OPENCV  mat类
			OpenCV参考手册之Mat类详解 目标 我们有多种方法可以获得从现实世界的数字图像:数码相机.扫描仪.计算机体层摄影或磁共振成像就是其中的几种.在每种情况下我们(人类)看到了什么是图像.但是,转换图 ... 
- 分享C# GC 非原创
			一. 托管资源的分配 CLR在运行时管理着一段内存地址空间(虚拟地址空间,在运行中会映射到物理内存地址中),分为“托管堆”和“栈”两部分,栈用于存储值类型数据,它会在方法执行结束后自动销毁其中引用的值 ... 
- 使用srvany.exe把程序安装成windows服务
			srvany.exe介绍 srvany.exe是Microsoft Windows Resource Kits工具集的一个实用的小工具,用于将任何EXE程序作为Windows服务运行.也就是说srva ... 
- python登陆github
			#!/usr/bin/env python # encoding: utf-8 import requests from headers import headers from lxml import ... 
- ScrollView下嵌套GridView或ListView默认不在顶部的解决方法
			自定义ScrollView重写下面的方法 /* ScrollView下嵌套GridView或ListView默认不在顶部的解决方法*/ @Override protected int computeS ... 
- cp2102通过GPIO连接树莓派
			此博客不在更新,我的博客新地址:www.liuquanhao.com ----------------------------------------------------------------- ... 
- python爬虫beautifulsoup4系列4-子节点【转载】
			本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/beautifulsoup4/ 前言 很多时候我们无法直接定位到某个元素,我们可以先定位 ... 
- Netty源码学习(三)NioEventLoop
			0. NioEventLoop简介 NioEventLoop如同它的名字,它是一个无限循环(Loop),在循环中不断处理接收到的事件(Event) 在Reactor模型中,NioEventLoop就是 ... 
- UVA 1395	Slim Span 最小生成树
			题意: 给你一个图,让你求这个图中所有生成树中满足题目条件的,这个条件是生成树中最长边与最短边的差值最小. 思路: 根据最小瓶颈生成树的定义:在一个有权值的无向图中,求一个生成树最大边的权值尽量小.首 ... 
