diff --git a/packages/hydrooj/src/handler/problem.ts b/packages/hydrooj/src/handler/problem.ts index 17e3f8e43..1a47ef6f4 100644 --- a/packages/hydrooj/src/handler/problem.ts +++ b/packages/hydrooj/src/handler/problem.ts @@ -499,7 +499,12 @@ export class ProblemSubmitHandler extends ProblemDetailHandler { if (!file || file.size === 0) throw new ValidationError('code'); const sizeLimit = config.type === 'submit_answer' ? 128 * 1024 * 1024 : lengthLimit; if (file.size > sizeLimit) throw new ValidationError('file'); - if (file.size < lengthLimit && !file.filepath.endsWith('.zip') && !setting.langs[lang].isBinary) { + const showReadFile = () => { + if (config.type === 'objective') return true; + if (lang === '_') return true; + return file.size < lengthLimit && !file.filepath.endsWith('.zip') && !setting.langs[lang].isBinary; + }; + if (showReadFile()) { // TODO submission file shape code = await readFile(file.filepath, 'utf-8'); } else {