具有自定义属性的文件对象

时间:2018-04-26 11:45:56

标签: node.js reactjs file multer form-data

我想在自定义文件属性的服务器上存储文件。 在客户端我添加属性:

let file = new File([blob], 'flower.jpg')
file.custom = "another properties"

这给了我

custom:"another properties"
lastModified:1524742832101
lastModifiedDate:Thu Apr 26 2018 13:40:32 GMT+0200 (W. Europe Daylight Time {}
name:"flower.jpg"
size:845941
type:"image/jpeg"
webkitRelativePath:""

当我将此文件发送到节点服务器时,将删除自定义属性。 我使用formData和multer进行文件上传。

fieldname: 'images',
originalname: 'flower.jpg',
encoding: '7bit',
mimetype: 'image/jpeg',
destination: 'uploads/',
size: 845941

有没有办法存储包含自定义属性的文件?

2 个答案:

答案 0 :(得分:0)

我遇到了与multer / express类似的情况,最后为每个上传的文件附加了一个附加属性。然后拉了 来自服务器上的req.body的附加属性,在文件名上匹配。我们的UI可以防止重复的文件名,因此这对我们来说非常有用。

const data = new FormData();

files.forEach((file) => {
  data.append('form-key', file);
  data.append(file.name, file.identifier);
});

答案 1 :(得分:0)

使用Object.defineProperty() 像这样

const object1 = {};

Object.defineProperty(object1, 'property1', {
  value: 42,
  writable: false
});

object1.property1 = 77;
// throws an error in strict mode

console.log(object1.property1);
// expected output: 42

更多详细信息在这里 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty