nodejs应用:文件上传
功能:上传文件到服务器,图片支持客户端本地预览。
服务端
//server.js
'use strict';
const http = require('http');
const url = require('url');
const util = require('util');
const fs = require('fs');
const formidable = require('formidable');
const path = require('path');
http.createServer(function(req,res) {
if (req.url == '/upload' && req.method.toLowerCase() == 'post') {
var form = new formidable.IncomingForm();
form.encoding = 'utf8';
form.uploadDir = path.resolve(__filename,'../dir');
form.keepExtensions = true; //给文件加上对应的扩展名;
form.parse(req, function(err, fields, files) {
res.writeHead(200, {'content-type': 'text/plain'});
res.write('received upload:\n\n');
res.end(util.inspect({fields: fields, files: files}));
});
} else {
res.writeHead(200,{'Content-Type':'text/html;charset=utf8'});
fs.readFile('./index.html',function(err,data) {
res.end(data);
});
}
}).listen(70,function(){
console.log('ok');
})
客户端
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form>
<input type="file" id="uploadFile"/>
<img style="width:100px;height:auto" id="previewFile" src="" alt=""/>
<input type="button" id="btn" value="提交"/>
</form>
<script src="//cdn.bootcss.com/jquery/2.2.2/jquery.js"></script>
<script>
document.querySelector('#uploadFile').onchange = function() {
var reader = new FileReader();
if (document.querySelector('#uploadFile').files.length > 0){
var source = document.querySelector('#uploadFile').files[0];
reader.readAsDataURL(source);
reader.onload = function(oFREvent) {
document.querySelector('#previewFile').src = oFREvent.target.result;
}
} else {
return;
}
};
document.querySelector('#btn').onclick = function() {
var formData = new FormData();
formData.append('file',$('#uploadFile')[0].files[0]);
formData.append('hello','asddsfs');
$.ajax({
url: '/upload',
type: 'post',
data: formData,
processData: false, // 告诉jQuery不要去处理发送的数据
contentType: false, // 告诉jQuery不要去设置Content-Type请求头
success:function(data) {
console.log(data);
}
})
}
</script>
</body>
</html>
nodejs应用:文件上传的更多相关文章
- NodeJs之文件上传
NodeJs之文件上传 一,介绍与需求 1.1,介绍 1,multer模块 multer用于处理文件上传的nodejs中间件,主要跟express框架搭配使用,只支持表单MIME编码为multipar ...
- Nodejs express 文件上传
文件上传 以下我们创建一个用于上传文件的表单,使用 POST 方法,表单 enctype 属性设置为 multipart/form-data. index.htm 文件代码修改如下: <html ...
- nodejs实现文件上传
在使用ant-design的upload上传文件时,前端很好实现,那么我们如何实现node服务端呢? 服务端文件上传实现 var express = require('express'); var f ...
- nodejs+multiparty 文件上传
通过表单提交上传文件: html代码 <form action="/uploadFile" method="post" enctype=" ...
- nodeJs实现文件上传,下载,删除
转:https://blog.csdn.net/qq_36228442/article/details/81709272 一.简介 本文介绍了nodeJs+express框架下,用multer中间件实 ...
- 【nodejs】文件上传demo实现
文件结构: index.js var server = require('./server.js'); var router = require('./router.js'); var request ...
- Html5+NodeJS——拖拽多个文件上传到服务器
实现多文件拖拽上传的简易Node项目,可以在github上下载,你可以先下载下来:https://github.com/Johnharvy/upLoadFiles/. 解开下载下的zip格式包,建议用 ...
- Nodejs进阶:基于express+multer的文件上传
关于作者 程序猿小卡,前腾讯IMWEB团队成员,阿里云栖社区专家博主.欢迎加入 Express前端交流群(197339705). 正在填坑:<Nodejs学习笔记> / <Expre ...
- nodejs学习之文件上传
最近要做个图片上传的需求,因为服务端春节请假回家还没来,所以就我自己先折腾了一下,大概做出来个效果,后台就用了nodejs,刚开始做的时候想网上找一下资料,发现大部分资料都是用node-formida ...
随机推荐
- 559. Maximum Depth of N-ary Tree
https://leetcode.com/problems/maximum-depth-of-n-ary-tree/description/ 非常简单的题目,连edge case 都没有.思路就是:最 ...
- 译文 - Recommender Systems: Issues, Challenges, and Research Opportunities
REF: 原文 Recommender Systems: Issues, Challenges, and Research Opportunities Shah Khusro, Zafar Ali a ...
- AnjularJs教程
原文地址:https://www.angular.cn/guide/quickstart#step-1-install-the-angular-cli
- 提高在word编辑公式的效率,及快捷键、对齐、编号问题
1. Word中编辑公式简介(重点看) https://jacobz.top/2017-08/WordMath/ 2. 快捷键 https://wenku.baidu.com/view ...
- mysql注释方法【自用】
原文链接:https://www.jb51.net/article/125991.htm 一.MySQL支持三种注释方式: 1.从‘#'字符从行尾. 2.从‘-- '序列到行尾.请注意‘-- '(双破 ...
- UWB DWM1000 跟随小车原理---一张图演示
更多内容参考论坛:bphero.com.cn
- Firefox 的兼容问题
Firefox (火狐) 坑 一, css 文本溢出省略号 单行 : overflow:hidden; text-overflow:ellipsis; white-space:nowrap 多行 : ...
- kvm+libvirt虚拟机快照浅析[转]
浅析snapshots, blockcommit,blockpull 作者:Kashyap Chamarthy <kchamart#redhat.com> Date: Tue, 23 Oc ...
- java代码编译与C/C++代码编译的区别
Java编译原理 1.Java编译过程与c/c++编译过程不同 Java编译程序将java源程序编译成jvm可执行代码--java字节码. Java在编译过程中一般会按照以下过程进行: (1)JDK根 ...
- springboot-项目获取resources下文件碰到的问题(classPath下找不到文件和文件名乱码)
项目是spring-boot + spring-cloud 并使用maven 管理依赖.在springboot+maven项目下怎么读取resources下的文件实现文件下载? 怎么获取resourc ...