javascript - 使用 node.js 处理 PLUpload 上传

标签 javascript http node.js upload plupload

我正在尝试在 node.js 中创建服务器端上传组件,但在解释从 PLUpload 发送的信息时遇到问题。据我所知,PLUpload(在 HTML5 模式下)将文件作为二进制信息发送,这给我到目前为止一直尝试使用的 node.js 包(node-formidable 和 node-express)带来了问题,因为它们期望正常具有多部分内容类型的 HTML 上传。

就其值(value)而言,这是我一直在尝试使用的代码...

var formidable = require('formidable');
var sys = require('sys');

http.createServer( function( req, res ){

    console.log('request detected');

    if( req.url == '/upload/' ){

        console.log('request processing');

        var form = new formidable.IncomingForm();
        form.parse( req, function( err, fields, files ){
            res.writeHead( 200, {
                'Access-Control-Allow-Origin': 'http://tksync.com',
                'Access-Control-Allow-Methods': 'GET,PUT,POST,DELETE',
                'Access-Control-Allow-Headers': '*',
                'content-type': 'text/plain'
            });
            res.write('received upload:\n');
            res.end(sys.inspect({
                fields: fields,
                files: files
            }));
        });
    }

}).listen( 8080 );

最佳答案

我可以使用 plupload(在 HTML5 模式下)与带有以下代码的 Node.js 一起使用:

module.exports.savePhoto= (req, res) ->
  if req.url is "/upload" and req.method.toLowerCase() is "post"
    console.log 'savePhoto: req.url=', req.url, 'req.method=', req.method
    form = new formidable.IncomingForm()
    files = []
    fields = []
    form.uploadDir = config.PATH_upload
    form.on("field", (field, value) ->
      console.log field, value
      fields.push [ field, value ]
    ).on("file", (field, file) ->
      console.log field, file
      files.push [ field, file ]
    ).on "end", ->
      console.log "-> upload done: fields=", fields
      console.log "received fields:", util.inspect(fields)
      console.log "received files:",  util.inspect(files)
      size = files[0][1].size
      pathList = files[0][1].path.split("/")
      #console.log 'pathList=', pathList
      file = pathList[pathList.length - 1]
      console.log "file=" + file
      ......

关于javascript - 使用 node.js 处理 PLUpload 上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7081090/

相关文章:

javascript - Google Adwords API 发现以元素 'serviceSelector' 开头的无效内容

Javascript 移除所有空的 innerHTML 子元素

java - 在 Java 中读取 HTTP 消息

c# - ASP.NEt 应用程序中 HttpRequest.InputStream 属性的运行时类型是什么

node.js - 从 Google 数据存储区获取所有实体

javascript - Jquery 处理提交按钮的单击事件而不中断表单发布

javascript - Phonegap 下载 html 文件并替换它(来源)

angularjs - 有没有办法将访问 token 转换为 Angular 中的 Base64 编码字符串?

node.js - 错误 : mongoose-auto-increment has not been initialized

javascript - 错误 : timeout of 2000ms exceeded. 带有 promise 的单元测试