带有express.js的dojo文件上载程序

带有express.js的dojo文件上载程序,dojo,express,Dojo,Express,我正在尝试在客户端使用dojo FileUploader,在服务器端使用express.js上传图像。图像上传完成后,我想预览上传的图像。 这是我的密码:- var express = require('express'), fs = require('fs'); app = express.createServer(); app.use(express.bodyParser()) app.post('/testy', function(req, res

我正在尝试在客户端使用dojo FileUploader,在服务器端使用express.js上传图像。图像上传完成后,我想预览上传的图像。 这是我的密码:-

    var express = require('express'),
    fs = require('fs');
    app = express.createServer();

    app.use(express.bodyParser())
    app.post('/testy', function(req, res)
    {
      var filename = req.body.Filename;
      var body = req.files.flashUploadFiles.path;  
      fs.createReadStream(body).pipe(fs.createWriteStream('tmp/' + filename));

      res.send('tmp/' + filename);
    });  

app.listen(8005);
Ajax请求图像上载:-

require(['dojo/dom','dojo/_base/array','dojo/dom-construct','dojo/query',"dojo/request",'dojo/on',"dojox/form/FileUploader","dojo/domReady!"],function(dom,array,domConstruct,query,xhr,on,FileUploader)
    {
       var upld = new FileUploader(
       {
        degradable:true,
        uploadUrl:'http://localhost:8005/testy',
        uploadOnChange:false,
        title:'uploader,
        isDebug:true,
        devMode:true
       },'test');

       on(upld,'change',function(data)
       {
        array.forEach(data,function(d)
        {
           dom.byId('filename').innerHTML = d.name;
            });
       });
       on(upld,'complete',function(data)
       {
        array.forEach(data, function(d)
        {
           dom.byId("rgtCol").innerHTML += '<img src="'+d.file+'" />';
        });
       });
       on(dom.byId('btn'),'click',function(evt)
       {
        upld.upload();
       });
    });
    var express = require('express'),
    fs = require('fs');
    app = express.createServer();

    app.use(express.bodyParser())
    app.post('/testy', function(req, res)
    {
      var filename = req.body.Filename;
      var body = req.files.flashUploadFiles.path;  
      fs.createReadStream(body).pipe(fs.createWriteStream('tmp/' + filename));

      res.send('tmp/' + filename);
    });  

app.listen(8005);
我的问题是,图像上传,但我不能给客户端预览上传的图像。我可以在服务器端使用php文件,但不能在express.js中使用

    var express = require('express'),
    fs = require('fs');
    app = express.createServer();

    app.use(express.bodyParser())
    app.post('/testy', function(req, res)
    {
      var filename = req.body.Filename;
      var body = req.files.flashUploadFiles.path;  
      fs.createReadStream(body).pipe(fs.createWriteStream('tmp/' + filename));

      res.send('tmp/' + filename);
    });  

app.listen(8005);

提前感谢…

当涉及到将二进制数据(如图像)推回给用户时,我碰巧使用了。它基于socketIO构建,您可以在上传完成后通过

    var express = require('express'),
    fs = require('fs');
    app = express.createServer();

    app.use(express.bodyParser())
    app.post('/testy', function(req, res)
    {
      var filename = req.body.Filename;
      var body = req.files.flashUploadFiles.path;  
      fs.createReadStream(body).pipe(fs.createWriteStream('tmp/' + filename));

      res.send('tmp/' + filename);
    });  

app.listen(8005);
server.on('connection', function(client){
  // Stream a flower as a hello!
  var file = fs.createReadStream(__dirname + '/flower.png');
  client.send(file); 
});
这样,您可以将图像作为预览发送给用户。如果需要,您可能希望通过ImageMagick创建缩略图,但这是额外的。我向您展示的示例是

    var express = require('express'),
    fs = require('fs');
    app = express.createServer();

    app.use(express.bodyParser())
    app.post('/testy', function(req, res)
    {
      var filename = req.body.Filename;
      var body = req.files.flashUploadFiles.path;  
      fs.createReadStream(body).pipe(fs.createWriteStream('tmp/' + filename));

      res.send('tmp/' + filename);
    });  

app.listen(8005);