Files
pp-tcms/backend/config/contentDisposition.js

17 lines
511 B
JavaScript

export function toSafeFileName(fileName) {
const s = String(fileName ?? '')
// eslint-disable-next-line no-control-regex
.replace(/[\u0000-\u001F\u007F]/g, '')
.replace(/[<>:"/\\|?*]/g, '_')
.replace(/\s+/g, ' ')
.trim();
return s;
}
export function contentDisposition(filename) {
const fallback = filename.replace(/[^\x20-\x7E]/g, '_').replace(/"/g, "'");
const encoded = encodeURIComponent(filename);
return `attachment; filename="${fallback}"; filename*=UTF-8''${encoded}`;
}