Closed GitHub27 closed 1 year ago
我一开始也遇到了这种问题了,就报错 nvalid update file name 一开始以为文件格式的问题,换了jpg、jpeg等还不行,后来看了下midwayjs官方文档,发现再config/config.default.ts 有个文件上传的配置
如下图
文档上指出whitelist 是配置白名单的,仓库源码这里显示的是 whitelist: () => true
,修改为
whitelist: uploadWhiteList.filter(ext => ext !== '.pdf')
再测试就成功了
贴一下我自己的配置
import { uploadWhiteList } from '@midwayjs/upload';
import { MODETYPE } from '@cool-midway/file';
import { MidwayConfig } from '@midwayjs/core';
import * as redisStore from 'cache-manager-ioredis';
import * as fsStore from 'cache-manager-fs-hash';
export default {
// 修改成你自己独有的key
keys: 'cool-admin for node',
koa: {
port: 8001,
},
// 文件上传
upload: {
fileSize: '200mb',
// whitelist: () => true,
// whitelist: string[],文件扩展名白名单
whitelist: uploadWhiteList.filter(ext => ext !== '.pdf'),
},
// 模板渲染
view: {
mapping: {
'.html': 'ejs',
},
},
// 本地缓存
// cache: {
// store: fsStore,
// options: {
// path: 'cache',
// ttl: -1,
// },
// },
// redis缓存
cache: {
store: redisStore,
options: {
host: '127.0.0.1',
port: 6379,
password: '',
db: 0,
ttl: null,
},
},
// cool配置
cool: {
redis: {
host: '127.0.0.1',
port: 6379,
password: '',
db: 0,
},
// 是否自动导入数据库
initDB: true,
file: {
// 上传模式 本地上传或云存储
// mode: MODETYPE.LOCAL,
mode: MODETYPE.CLOUD,
oss: {
accessKeyId: '',
accessKeySecret: '',
bucket: 'midway-test-cloud',
endpoint: 'oss-cn-beijing.aliyuncs.com',
timeout: '3600s',
} as OSSConfig,
// 本地上传 文件地址前缀,当且仅当mode为LOCAL时生效
domain: 'http://127.0.0.1:8001',
},
// es: {
// // 集群模式下可以配置多个地址
// nodes: ['http://localhost:9200'],
// },
//支付
pay: {
wx: {
appid: '',
mchid: '',
partnerKey: '',
// pfx: require('fs').readFileSync('证书文件路径'),
notify_url: 'http://127.0.0.1:8001/app/demo/pay/wxNotify',
// spbill_create_ip: 'IP地址',
},
},
} as CoolConfig,
} as
| MidwayConfig
| {
cache: any;
};
自己加一下就行了
clone官方仓库地址,运行项目,菜单 工作台-组件库-文件上传,报400错误。 接口:http://localhost:9000/dev/app/base/comm/upload 类型:local 本地上传 接口返回:{"code":400,"message":"Invalid update file name test.jpeg, please check it"}