Strapi 上传的文件未在网站上显示
Strapi uploaded files are not displaying on website
我有很多文件存储在upload_file collection 和mongodb 中,它们与相关内容类型有关系。但是,当我打开 Strapi CMS UI 时,我看不到附加在其内容类型上的文件。
我正在使用 Strapi v3.4.6 — 社区版。
第一张图片显示的是我的 upload_file collection 项。其关系如红圈所示
第二张图片显示的是我的主要内容类型 collection 项目。你看到它的 id 和 upload_file rel id 是匹配的。
但在 Strapi UI 中,此文件未链接到模型。该文件存在于 Strapi 的文件系统中。然而它是不可见的
我可以手动添加这个文件,但是有什么快速的方法吗?
将图片上传到 strapi 时,请确保您的 formData 包含这些字段
const formData = new FormData();
formData.append('files', image);
formData.append('ref', 'contentTypeName');
formData.append('refId', dataItemId);
formData.append('field', 'image');
您需要迁移数据库。我们用一个基本的脚本解决了。
运行 http://localhost:3000/migrate
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017";
var dbName = "YOURDBNAME";
const express = require('express')
const app = express()
const port = 3000
var _db;
var _dbo;
var tables = {
"table1": "TabLE1",
"table2": "TABle2",
}
app.get('/migrate', (req, res) => {
res.send('Started!')
_dbo.collection("upload_file").find({}).toArray(function(err, result) {
if (err) throw err;
result.forEach(function (item) {
if (item.related.length > 0) {
var related = item.related[0];
var query = { '_id': related.ref };
var newvalues = { $set: {} };
newvalues.$set[related.field] = item._id;
var tableName = related.kind.toLowerCase();
_dbo.collection(tables[tableName]).updateOne(query, newvalues, function(err, res) {
if (err) throw err;
console.log(res != null ? res.ops : null);
});
}
})
// db.close();
});
})
MongoClient.connect(url, function(err, db) {
if (err) throw err;
_dbo = db.db(dbName);
});
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`)
})
function capitalizeFirstLetter(string) {
return string.charAt(0).toUpperCase() + string.slice(1);
}
// Run http://localhost:3000/migrate
我有很多文件存储在upload_file collection 和mongodb 中,它们与相关内容类型有关系。但是,当我打开 Strapi CMS UI 时,我看不到附加在其内容类型上的文件。
我正在使用 Strapi v3.4.6 — 社区版。
第一张图片显示的是我的 upload_file collection 项。其关系如红圈所示
第二张图片显示的是我的主要内容类型 collection 项目。你看到它的 id 和 upload_file rel id 是匹配的。
但在 Strapi UI 中,此文件未链接到模型。该文件存在于 Strapi 的文件系统中。然而它是不可见的
我可以手动添加这个文件,但是有什么快速的方法吗?
将图片上传到 strapi 时,请确保您的 formData 包含这些字段
const formData = new FormData();
formData.append('files', image);
formData.append('ref', 'contentTypeName');
formData.append('refId', dataItemId);
formData.append('field', 'image');
您需要迁移数据库。我们用一个基本的脚本解决了。
运行 http://localhost:3000/migrate
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017";
var dbName = "YOURDBNAME";
const express = require('express')
const app = express()
const port = 3000
var _db;
var _dbo;
var tables = {
"table1": "TabLE1",
"table2": "TABle2",
}
app.get('/migrate', (req, res) => {
res.send('Started!')
_dbo.collection("upload_file").find({}).toArray(function(err, result) {
if (err) throw err;
result.forEach(function (item) {
if (item.related.length > 0) {
var related = item.related[0];
var query = { '_id': related.ref };
var newvalues = { $set: {} };
newvalues.$set[related.field] = item._id;
var tableName = related.kind.toLowerCase();
_dbo.collection(tables[tableName]).updateOne(query, newvalues, function(err, res) {
if (err) throw err;
console.log(res != null ? res.ops : null);
});
}
})
// db.close();
});
})
MongoClient.connect(url, function(err, db) {
if (err) throw err;
_dbo = db.db(dbName);
});
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`)
})
function capitalizeFirstLetter(string) {
return string.charAt(0).toUpperCase() + string.slice(1);
}
// Run http://localhost:3000/migrate