无奈白了少年头 2017-03-10 08:06 采纳率: 100%
浏览 5936
已采纳

vue + node 如何实现图片的存取

RT,我想做一个博客网站,其中需要用到图片的存取(用户头像,文章图片等)
前端我用的是vue框架,后台使用的是node+express
我的想法是把图片存到本地文件夹中,然后数据库保存图片的绝对路径,然后前端页面需要显示图片时再从数据库中使用绝对路径读取本地图片文件,但我不知道如何实现将图片存储到指定文件夹中。
然后另一个想法是将图片上传到服务器上,使用图片地址来实现图片的存储,但这种方法我不知道怎么找教程,不知道怎么实现
谢谢各位大神了

  • 写回答

1条回答 默认 最新

  • 当作看不见 2017-03-10 08:21
    关注

    app.use(express.bodyParser({uploadDir:'./uploads'}));

     app.post('/file-upload', function(req, res) {
    
         console.log(req.body);
          console.log(req.files);
    
          console.log(req.files.file_data.path);
        // 获得文件的临时路径
       //var tmp_path = req.files.thumbnail.path;
        var tmp_path = req.files.file_data.path;
       // 指定文件上传后的目录 - 示例为"images"目录。 
       var splitlast=req.files.file_data.name.split('.').length-1;
       var target_path='./userData/'+req.files.file_data.name.split('.')[splitlast];
       fs.exists(target_path, function (exist) {
    
            if(!exist){
                fs.mkdir(target_path,function(err){
                       if (err) {
                           return console.error(err);
                       }
                       console.log("目录创建成功。");
                    });
            }       //true
        });
    
       // 移动文件 
       try{
           fs.rename(tmp_path, target_path, function(err) {
             if (err) throw err;
             // 删除临时文件夹文件, 
             var list;
    
    
    
             if(req.files.file_data.name.split('.')[splitlast]=="xlsx"){
                    list = xlsx.parse(target_path);
               }
             fs.unlink(tmp_path, function() {
                if (err) throw err;
    
                if(!!list){
                    console.log(list);
                     res.send(list);
                     list.map(function(v){
                        console.log(v.name);
                        v.data.map(function(val){
                            console.log(val);
                        });
                     });
                }
                res.send('File uploaded to: ' + target_path + ' - ' + req.files.file_data.size + ' bytes');
    
             });
           });
       }catch(error){
           throw error;
       }
     });;
    

    前台只需要post 这个路劲提交文件就可以了
    这是我用来解析xlsx文件的 .

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 聚类分析或者python进行数据分析
  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号