Closed chekn closed 7 years ago
在nideshop目录运行pm2 stop nideshop
修改该文件 在图片上传失败前添加:console.log(err);
保存后运行:npm start
重新上传图片,然后把错误提示发出来。
对 pm2 这个命令不清楚,使用shell 执行也shell也说找不到,但看意识是停掉,就ctrl+c停了 然后打印发现有报错,(输出空对象的原因: 之前用的JSON.stringify(err) 输出到 response 就变成了 {})。
控制台输出
前台发送内容
thinkjs 没有存临时文件
查是不是磁盘权限原因,这是的改的代码
async uploadAction(){
let brandFile = this.file('brand_pic');
if (think.isEmpty(brandFile)) {
return this.fail('store fail......');
}
let that = this;
let filename = '/static/brand/' + think.uuid(32) + '.jpg';
if(fs.exists(brandFile.path))
gm(brandFile.path)
.resize(750, 420, "!")
.write(think.RESOURCE_PATH + filename, function (err) {
if (err) {
that.fail("store procession fail.." );
}
that.success({
fileUrl: '' + filename
});
});
else{
var n=null;
var cmd= process.execSync('whoami');
console.info( "who hold this " + (n=cmd) );
return this.fail("have no file in thinkjs upload tmp dir.. [][] i am "+ n);
}
}
终端 发现打印的是 who hold this root, 这样就不是权限导致的无法写问题。
问题已解决,之前不冷静,没有仔细看出错信息,以为是 图片文件 没找到 下面是问题解决过程
yum install GraphicsMagick -y
yum install ImageMagick -y
重试确认问题解决
这部分执行有问题 Linux服务器 执行gm.write 方法, 回调参数 err 是一个空对象,出错信息不明,不知道到底是哪里出错了。 查看 www 下的 brand 文件夹, 也没有刚上传的文件