为了账号安全,请及时绑定邮箱和手机立即绑定

有关海报上传的问题

本地的图片添加成功之后,在首页并不能完全展示出来,确切的说是:增加了这节课程的代码之后,不管是链接到远端还是采用本地上传的图片,服务端都无法获取到,提示都是404.

报错信息如下:http://localhost:12345/upload/ Failed to load resource: the server responded with a status of 404 (Not Found)可以看到,在上传海报时,获取海报的地址有错误。

http://localhost:12345/upload/https://img3.doubanio.com/view/movie_poster_cover/lpst/public/p2329080834.jpg Failed to load resource: the server responded with a status of 404 (Not Found)在选择网页上的海报时,地址变成了这个样子。

代码是跟着老师一步一步敲出来的,不知道有什么问题。

我这里采用的中间件是connect-multiparty。

引入方式如下:var multipart = require('connect-multiparty');

                        app.use(multipart())

正在回答

2 回答

你的图片地址是https开头的~

https://img3.doubanio.com/view/movie_poster_cover/lpst/public/p2329080834.jpg 


index.jade

if item.poster.indexOf('http:') > -1

改成

if item.poster.indexOf('http:') > -1 || item.poster.indexOf('https:') > -1


2 回复 有任何疑惑可以回复我~
app.use(require('connect-multiparty')());

我用的也是connect-multiparty中间件,这是在app.js中引入

第一次测试时,传入的req.poster 的值只是上传文件的文件名,没有路径。

第二次用newPath,发现路径是本地磁盘的绝对路径'D:/'

第三次,我做了拼接。数据库存入路径正确,首页显示正常

if (originalFilename) {
        fs.readFile(filePath, function(err, data){
            var timestamp = Date.now();
            var type = posterData.type.split('/')[1];
            var poster = timestamp + '.' + type;
            var newPath = path.join(__dirname, '../../', '/public/upload/' + poster);

            fs.writeFile(newPath, data, function(err){
                req.poster = '/upload/' + poster;    //这里做了拼接
                next()
            })
        })
    }else{
        next()
    }


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
node建站攻略(二期)——网站升级
  • 参与学习       51919    人
  • 解答问题       423    个

帮助你深入前后端开发留下的迷惑,为进一步自学打下基础

进入课程

有关海报上传的问题

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号