nodejs中的formidable模块

nodejs中的formidable模块今天总结了下Node.js的Formidable模块的使用,下面做一些简要的说明。创建Formidable.IncomingForm对象varform=newformidable.IncomingForm()form.encoding=’utf-8’设置表单域的编码form.uploadDir=”/my/dir”;设置上传文件存放的文件夹,默认为系统的临时文件夹,可以使用fs.rename()来改变上传文件的存放位置和文件名form.keepExten

大家好,欢迎来到IT知识分享网。nodejs中的formidable模块"

今天总结了下Node.js的Formidable模块的使用,下面做一些简要的说明。

  1. 创建Formidable.IncomingForm对象
    

var form = new formidable.IncomingForm()

  1. form.encoding = 'utf-8' 设置表单域的编码
    
  2. form.uploadDir = "/my/dir"; 设置上传文件存放的文件夹,默认为系统的临时文件夹,可以使用fs.rename()来改变上传文件的存放位置和文件名
    
  3. form.keepExtensions = false; 设置该属性为true可以使得上传的文件保持原来的文件的扩展名。
    
  4. form.type 只读,根据请求的类型,取值'multipart' or 'urlencoded'
    
  5. form.maxFieldsSize = 2 * 1024 * 1024; 限制所有存储表单字段域的大小(除去file字段),如果超出,则会触发error事件,默认为2M
    
  6. form.maxFields = 1000 设置可以转换多少查询字符串,默认为1000
    
  7. form.hash = false; 设置上传文件的检验码,可以有两个取值'sha1' or 'md5'.
    
  8. form.multiples = false; 开启该功能,当调用form.parse()方法时,回调函数的files参数将会是一个file数组,数组每一个成员是一个File对象,此功能需要 html5中multiple特性支持。
    
  9. form.bytesReceived 返回服务器已经接收到当前表单数据多少字节

  10. form.bytesExpected 返回将要接收到当前表单所有数据的大小

  11. form.parse(request, [callback]) 该方法会转换请求中所包含的表单数据,callback会包含所有字段域和文件信息,如:

form.parse(req, function(err, fields, files) {

// …

});

  1. form.onPart(part); 你可以重载处理multipart流的方法,这样做的话会禁止field和file事件的发生,你将不得不自己处理这些事情,如:

form.onPart = function(part) {

part.addListener(‘data’, function() {

             // ...

});

}

如果你只想让formdable处理一部分事情,你可以这样做:

form.onPart = function(part) {

if (!part.filename) {

       // 让formidable处理所有非文件部分

form.handlePart(part);

}

}

  1. formidable.File对象

A. file.size = 0 上传文件的大小,如果文件正在上传,表示已上传部分的大小

B. file.path = null 上传文件的路径。如果不想让formidable产生一个临时文件夹,可以在fileBegain事件中修改路径

C. file.name = null 上传文件的名字

D. file.type = null 上传文件的mime类型

E. file.lastModifiedDate = null 时间对象,上传文件最近一次被修改的时间

F. file.hash = null 返回文件的hash值

G. 可以使用JSON.stringify(file.toJSON())来格式化输出文件的信息

  1. form.on(‘progress’, function(bytesReceived, bytesExpected) {}); 当有数据块被处理之后会触发该事件,对于创建进度条非常有用。

  2. form.on(‘field’, function(name, value) {}); 每当一个字段/值对已经收到时会触发该事件

  3. form.on(‘fileBegin’, function(name, file) {}); 在post流中检测到任意一个新的文件便会触发该事件

  4. form.on(‘file’, function(name, file) {}); 每当有一对字段/文件已经接收到,便会触发该事件

  5. form.on(‘error’, function(err) {}); 当上传流中出现错误便会触发该事件,当出现错误时,若想要继续触发request的data事件,则必须手动调用request.resume()方法

  6. form.on(‘aborted’, function() {}); 当用户中止请求时会触发该事件,socket中的timeout和close事件也会触发该事件,当该事件触发之后,error事件也会触发

21) form.on(‘end’, function() {}); 当所有的请求已经接收到,并且所有的文件都已上传到服务器中,该事件会触发。此时可以发送请求到客户端。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/21779.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信