reallow non-media files by default

This commit is contained in:
anarch3 2022-11-17 04:51:23 -05:00
parent e9fe154142
commit 25c1ea7da2
3 changed files with 101 additions and 74 deletions

View file

@ -73,3 +73,16 @@
.image {
width: 100%;
}
div.nonmedia {
height: 100px;
width: 100%;
}
div.nonmedia p {
color: #444;
font-size: 20px;
font-weight: 400;
line-height: 100px;
text-align: center;
}

View file

@ -33,18 +33,28 @@ const storage = multer.diskStorage({
}
});
let allowedMimeTypes = [
'image/png',
'image/jpg',
'image/jpeg',
'image/gif',
'image/webp',
'video/mp4',
'video/mov',
'video/webm',
'audio/mpeg',
'audio/ogg'
]
const fileFilter = function(req, file, cb) {
if (file.mimetype == "image/png" || file.mimetype == "image/jpg" || file.mimetype == "image/jpeg" || file.mimetype == "image/gif" || file.mimetype == "image/webp"
|| file.mimetype == "video/mp4" || file.mimetype == "video/mov" || file.mimetype == "video/webm"
|| file.mimetype == "audio/mpeg" || file.mimetype == "audio/ogg") {
cb(null, true)
if (allowedMimeTypes.includes(file.mimetype)) {
cb(null, true);
} else {
cb(null, false);
//return cb(new Error('Only media files allowed'));
}
}
}
let upload = multer({ storage: storage, fileFilter: fileFilter });
let upload = multer({ storage: storage /**, fileFilter: fileFilter**/ }); //maybe make this a env variable?
function fetchMedia(req, res, next) {
db.all('SELECT * FROM media', (err, rows) => {

View file

@ -9,7 +9,7 @@
<link rel="stylesheet" href="/css/app.css">
<%
function extension(string) {
return string.slice((string.lastIndexOf(".") - 2 >>> 0) + 2);
return string.slice((string.lastIndexOf(".") - 2 >>> 0) + 2);
}
%>
</head>
@ -46,8 +46,12 @@ function extension(string) {
<div class="view">
<% if (extension(file.path) == ".mp4" || extension(file.path) == ".mov" || extension(file.path) == "webp") { %>
<video autoplay loop muted playsinline class="image" src="/uploads/<%=file.path %>" width="100%" onclick="copyURI(event)"></video>
<% } else { %>
<% } else if (extension(file.path) == ".jpg" || extension(file.path) == ".jpeg" || extension(file.path) == ".png" || extension(file.path) == ".gif" || extension(file.path) == ".webp" ) { %>
<img class="image" src="/uploads/<%=file.path %>" width="100%" onclick="copyURI(event)">
<% } else {%> <!-- non-media file -->
<div class="nonmedia" onclick="copyURI(event)">
<p><%=extension(file.path)%> file</p>
</div>
<% } %>
<label text-align:"center"><%= file.path %></label>
<button class="destroy" form="delete-<%= file.path %>"></button>