我应该将什么从强大的传递给 cloudinary,我尝试了无效的图像路径/名称

问题描述

我对 Next JS 中的流进行了以下解析,该流正在获取图像的文件输入,看起来它存储了图像以供我传递给 cloudinary,但 cloudinary 表示该图像不存在。


const form = new formidable.IncomingForm();
  form.uploadDir = "./upload";
  form.keepExtensions = true;
  form.parse(req,(err,fields,files) => {
    console.log(JSON.stringify(files));
    const path = files.image.path + "/" + files.image.name
       cloudinary.uploader.upload(path,function (error,result) {
      console.log(result,error);
    });
  });

这是解析中的图像路径和名称

{"image":{"size":35168,"path":"./upload/1547db49054ff2a2acb915a03","name":"test.png","type":"image/png","mtime":"2021-03-12T03:46:20.002Z"}}

这里是来自 cloudinary 的错误

[Error: ENOENT: no such file or directory,open './upload/7e1c5b9e3235ae38d12097300/test.png'] {
  errno: -2,code: 'ENOENT',syscall: 'open',path: './upload/7e1c5b9e3235ae38d12097300/test.png'
}

我一定在这里错过了一些基本的东西。

更新:我试过用 fs 写信,但仍然没有运气。不太明白。图像是否曾经保存过以便我可以将其传递给 cloudinary。

const form = new formidable.IncomingForm();
  form.uploadDir = "./";
  form.keepExtensions = true;
  form.parse(req,files) => {
    console.log(JSON.stringify(files));

    console.log(files.image.path);

    var oldpath = files.image.path;
    var newPath = path.join(__dirname,"upload") + "/" + files.image.name;
    var rawData = fs.readFileSync(oldpath);

    fs.writeFile(newPath,rawData,function (err) {
      console.log(newPath);
      const path = newPath;
      cloudinary.uploader.upload(path,result) {
        console.log(result,error);
      });
    });
  });

解决方法

对于遇到此问题的任何其他人,您可以传递作为 rawData 变量的缓冲区,并像这样工作

canvas {
    display: none
}

@media print {
    body * {
        visibility: hidden;
    }
    canvas {
        visibility: visible;
        margin-top: 30%;
    }
    .form-control {
        visibility: visible;
    }
    .final-results * {
        visibility: visible;
    }
    .spider-chart * {
        visibility: visible;
    }
    .final-results,.form-control {
        position: absolute;
        left: 0;
        top: 0;
        right: 0;
        bottom: 0;
    }
}

table,table tr th,table tr td {
    border: 1px solid black;
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...