nodejs+multiparty 文件上传

通过表单提交上传文件:

    html代码

<form action="/uploadFile" method="post" enctype="multipart/form-data">
      <input type="file" class="files" id="files" name="files">
      <input type="submit" class="uploadFile" value="文件上传">
</form>
windows下安装multiparty
npm install multiparty
multiparty使用:multiparty文档 https://www.npmjs.com/package/multiparty
multiparty代码
var multiparty = require(‘multiparty‘);
app.post(‘/uploadFile‘,function(req.res){
    var form = new multiparty.Form();
    // res.setHeader(‘text/plain‘);
    var msg = {info:‘‘,img:‘‘};
    console.log(__dirname);
    form.encoding = ‘utf-8‘;
    form.uploadDir = __dirname+"/uploads";

    //设置单文件大小限制
    form.maxFilesSize = 2 * 1024 * 1024;
    //form.maxFields = 1000;  设置所以文件的大小总和
    form.parse(req, function(err, fields, files) {
        if(err){
            console.log(‘错误‘);
            msg.info = ‘上传失败‘;
            res.send(msg);
            return ;
        }
        console.log(files.files[0].originalFilename);
        msg.img=path.join(__dirname,‘/uploads/‘+files.files[0].originalFilename);
        console.log(msg.img);
        msg.info = ‘上传成功‘
        msg.len = files.length;
        res.writeHead(200,{"Content-type":"text/html;charset=UTF-8"});
        res.send(msg);
    });

});

参考链接:

https://www.npmjs.com/package/multiparty

https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/form

时间: 2024-10-05 03:14:52

nodejs+multiparty 文件上传的相关文章

【nodejs】文件上传demo实现

文件结构: index.js var server = require('./server.js'); var router = require('./router.js'); var requestHandlers = require("./requestHandlers"); var handle = {} handle["/"] = requestHandlers.start; handle["/start"] = requestHandl

也说文件上传之兼容IE789的进度条---丢掉flash

最近在整理前端常用到的一些组件,像分页(get/post两类).下拉框(下拉单选/下拉多选/省市区联动).模态框等:当然还有文件上传啦,如果只考虑用HTML5的话,前端方面的工作,那家伙老简单了,分分钟搞定,不就是验证,显示文件信息,加个进度条,回调下么:好吧,说得简单而已,自己动手完整的实现一遍试试:对于PC端的前端而言,大多时候可能还得顾及一下IE7+:那么问题就来了,IE789都不支持H5的file API,so,让我们一起BSIE吧! 上传显示文件类型.大小.文件名,这些百度立马出结果,

javascript结合nodejs实现多文件上传

前端文件上传功能比较依赖后端,所以第一步用nodejs实现一个供文件上传的功能接口. 因为本人对nodejs也是一知半解,所以刚开始的想法是像原始的ajax交互那样,获取上传文件的内容,然后再通过nodejs的buffer的知识,将获取到的文件流输出到准备好的目录中.于是就悲剧了.下面是获取图片资源的代码. 运行结果 首先获取资源是非常的慢,要等几分钟才会输出内容.后来看到可以在每一步获取文件流时就进行文件处理,不必等所有内容获取后再操作.但是随之又产生了一个新问题,就是获取来的文件内容中不仅包

基于Nodejs的大文件上传之断点续传

接着<扒一扒Nodejs formidable的onPart>和<也说文件上传之兼容IE789的进度条---丢掉flash>:前面已完成兼容IE789的大文件上传:无flash的低版本进度条,高版本的分段上传,并已为断点续传做好铺垫: 说什么做好铺垫,原本以为Nodejs端已没问题,只剩前端依靠HTML5接着监听abort事件,保存中断时上传到第几块了(断点续传只支持文件比较大,然后意外上传中断了,暂时定50M开启断点续传吧),通过文件内容hash和该文件唯一上传token来记录断

Nodejs+HTML5兼容IE789的大文件上传完整版

业余将大文件上传重新梳理了一遍,后端基于Nodejs:有几个要点感觉很好玩: 兼容性:IE789为代表: 跨域上传:document.domain||middlePage: 多文件上传:input['type=file'] multiple: 拖拽上传:drag drop: 大文件分段:files.slice(s,e): 断点续传:localStorage: 接收分段的文件:formidable.onPart: 陆续写入分段文件:fs.write(fd,bf,offset,length,posi

nodejs 实现简单的文件上传功能

首先需要大家看一下目录结构,然后开始一点开始我们的小demo. 文件上传总计分为三种方式: 1.通过flash,activeX等第三方插件实现文件上传功能. 2.通过html的form标签实现文件上传功能,优点:浏览器兼容好. 3.通过xhr level2的异步请求,可以百度formData对象. 这里使用2做个练习. node插件请看下package.json文件 { "name": "upload", "version": "0.1

使用formidable &amp; multiparty实现文件上传

安装 npm install formidable,multiparty –save -d 例子1:使用formidable解析表单 exports.formidableFormParse = function(req,callback){ var obj ={}; var form = new formidable.IncomingForm({ encoding:"utf-8", uploadDir:"public/upload", //文件上传地址 keepEx

使用nodejs+express(4.x+)实现文件上传

最简单的做法是通过“connect-multiparty”中间件实现上传. 通过在项目中npm install connect-multiparty进行安装. 用法: var multipart = require('connect-multiparty'); var multipartMiddleware = multipart(); app.post('/upload', multipartMiddleware, function(req, resp) { console.log(req.b

nodejs 文件上传

var multipart = require('connect-multiparty'); var fs = require('fs'); var multipartMiddleware = multipart(); router.get('/uploadTest', function (req, res) { res.render('uploadTest', { title: 'Upload File test' }) }); router.post('/uploadTest', multi