又拍云 上传文件时,本地文件目录位置错误

// api/apps.js
module.exports = {
    var upyun = new UPYUN(settings.upyun.BUCKET, settings.upyun.OPERATOR, settings.upyun.PASSWORD);
    upyun.uploadFile('/images/', '../uploads/photo1429620429355.png', 'image/png', true, function(err, result) {
                console.log(result);
        });
}

目录结构是

-- app.js

-- api
 - apps.js

-- uploads
 - photo1429620429355.png

该怎么写这个png的本地目录

阅读 2.5k
1 个回答

你的本地路径写的是相对路径的话,实际执行的时候是根据执行操作所在目录算的,比如你在 app.js 所在级别执行的话,路径就跑上级去啦,就不对啦~

解决方案:

把你的本地路径处理下传进去,

path.resolve(__dirname, '../uploads/photo1429620429355.png')

TL,DR;
即 根据被执行文件所在路径来计算实际路径

https://nodejs.org/docs/latest/api/path.html#path_path_resolve_from_to
https://nodejs.org/docs/latest/api/globals.html#globals_dirname

当然咯,记得把 path 模块 require 进来

var path = require('path');
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
又拍云问答
子站问答
访问
宣传栏