<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[It is not possible to upload zip files to the forum even though it is enabled in the settings.]]></title><description><![CDATA[<p dir="auto">I enabled the upload of files with the ZIP extension on my forum, and despite this in the Chrome browser on Windows (and other browsers) it writes Invalid MIME type, the content-type header in Chrome is application/x-zip-compressed and not application/zip.<br />
Since the MIME library returns ZIP to the following code</p>
<pre><code>node -e "const mime = require('mime').default; console.log(mime.getExtension('application/x-zip-compressed'));"
</code></pre>
<p dir="auto">This fails the upload</p>
]]></description><link>https://citiverse.it/topic/8545908d-64fe-42ad-a683-aacd3d090f21/it-is-not-possible-to-upload-zip-files-to-the-forum-even-though-it-is-enabled-in-the-settings.</link><generator>RSS for Node</generator><lastBuildDate>Wed, 08 Jul 2026 12:31:06 GMT</lastBuildDate><atom:link href="https://citiverse.it/topic/8545908d-64fe-42ad-a683-aacd3d090f21.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 19 Jun 2026 14:04:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to It is not possible to upload zip files to the forum even though it is enabled in the settings. on Mon, 22 Jun 2026 20:09:24 GMT]]></title><description><![CDATA[<p dir="auto">&gt; <a href="/user/julian%40community.nodebb.org">@julian</a> <a href="https://community.nodebb.org/post/107413" target="_blank" rel="noopener noreferrer nofollow ugc">כתב</a>:<br />
&gt;<br />
&gt; &gt; <a href="/user/amaarets%40community.nodebb.org">@AMAARETS</a> <a href="https://community.nodebb.org/post/107409" target="_blank" rel="noopener noreferrer nofollow ugc">said</a>:<br />
&gt; &gt;<br />
&gt; &gt; Just a quick question - I'm wondering what information I'm missing here<br />
&gt; &gt; Why maintain a list of aliases, and not do the comparison by checking in reverse whether mime.getExtension(application/x-zip-compressed) returns a valid extension like ZIP<br />
&gt;<br />
&gt; If you check in reverse, then you are relying on the sender to supply you with the information. That's untrustworthy data — you can't guarantee someone didn't mess around with the data in between, or pretend that they're upload a jpg when it's actually an exe, etc.</p>
<p dir="auto">How is this worse than the test that is being performed now? It also relies, among other things, on a comparison of the MIME coming from the user and the MIME checked on the server.<br />
I just suggest replacing the manual map you added with a function that will automatically generate it by grouping all types that return the same result in mime.getExtension</p>
]]></description><link>https://citiverse.it/post/https://community.nodebb.org/post/107416</link><guid isPermaLink="true">https://citiverse.it/post/https://community.nodebb.org/post/107416</guid><dc:creator><![CDATA[amaarets@community.nodebb.org]]></dc:creator><pubDate>Mon, 22 Jun 2026 20:09:24 GMT</pubDate></item><item><title><![CDATA[Reply to It is not possible to upload zip files to the forum even though it is enabled in the settings. on Mon, 22 Jun 2026 20:09:03 GMT]]></title><description><![CDATA[<p dir="auto"><a href="/user/amaarets%40community.nodebb.org">@AMAARETS</a> might be <a href="/user/baris%40community.nodebb.org">@baris</a>, he's working on it <img src="https://citiverse.it/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=3a6642edec2" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title="🙂" alt="🙂" /></p>
]]></description><link>https://citiverse.it/post/https://community.nodebb.org/post/107415</link><guid isPermaLink="true">https://citiverse.it/post/https://community.nodebb.org/post/107415</guid><dc:creator><![CDATA[julian@community.nodebb.org]]></dc:creator><pubDate>Mon, 22 Jun 2026 20:09:03 GMT</pubDate></item><item><title><![CDATA[Reply to It is not possible to upload zip files to the forum even though it is enabled in the settings. on Mon, 22 Jun 2026 20:01:48 GMT]]></title><description><![CDATA[<p dir="auto">&gt; <a href="/user/julian%40community.nodebb.org">@julian</a> <a href="https://community.nodebb.org/post/107412" target="_blank" rel="noopener noreferrer nofollow ugc">כתב</a>:<br />
&gt;<br />
&gt; <a href="/user/amaarets%40community.nodebb.org">@AMAARETS</a> those seem unrelated to the uploads issue, so perhaps you'll want to start a new topic for this <img src="https://citiverse.it/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=3a6642edec2" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /></p>
<p dir="auto">This is not a problem that exists in the stable version, only when I updated the forum to develop, so this is indeed just a side note to bring to your attention.</p>
<p dir="auto"><strong>Edit</strong>: I see you just fixed it, didn't you?</p>
]]></description><link>https://citiverse.it/post/https://community.nodebb.org/post/107414</link><guid isPermaLink="true">https://citiverse.it/post/https://community.nodebb.org/post/107414</guid><dc:creator><![CDATA[amaarets@community.nodebb.org]]></dc:creator><pubDate>Mon, 22 Jun 2026 20:01:48 GMT</pubDate></item><item><title><![CDATA[Reply to It is not possible to upload zip files to the forum even though it is enabled in the settings. on Mon, 22 Jun 2026 20:00:27 GMT]]></title><description><![CDATA[<p dir="auto">&gt; <a href="/user/amaarets%40community.nodebb.org">@AMAARETS</a> <a href="https://community.nodebb.org/post/107409" target="_blank" rel="noopener noreferrer nofollow ugc">said</a>:<br />
&gt;<br />
&gt; Just a quick question - I'm wondering what information I'm missing here<br />
&gt; Why maintain a list of aliases, and not do the comparison by checking in reverse whether mime.getExtension(application/x-zip-compressed) returns a valid extension like ZIP</p>
<p dir="auto">If you check in reverse, then you are relying on the sender to supply you with the information. That's untrustworthy data — you can't guarantee someone didn't mess around with the data in between, or pretend that they're upload a jpg when it's actually an exe, etc.</p>
]]></description><link>https://citiverse.it/post/https://community.nodebb.org/post/107413</link><guid isPermaLink="true">https://citiverse.it/post/https://community.nodebb.org/post/107413</guid><dc:creator><![CDATA[julian@community.nodebb.org]]></dc:creator><pubDate>Mon, 22 Jun 2026 20:00:27 GMT</pubDate></item><item><title><![CDATA[Reply to It is not possible to upload zip files to the forum even though it is enabled in the settings. on Mon, 22 Jun 2026 19:58:56 GMT]]></title><description><![CDATA[<p dir="auto"><a href="/user/amaarets%40community.nodebb.org">@AMAARETS</a> those seem unrelated to the uploads issue, so perhaps you'll want to start a new topic for this <img src="https://citiverse.it/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=3a6642edec2" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /></p>
]]></description><link>https://citiverse.it/post/https://community.nodebb.org/post/107412</link><guid isPermaLink="true">https://citiverse.it/post/https://community.nodebb.org/post/107412</guid><dc:creator><![CDATA[julian@community.nodebb.org]]></dc:creator><pubDate>Mon, 22 Jun 2026 19:58:56 GMT</pubDate></item><item><title><![CDATA[Reply to It is not possible to upload zip files to the forum even though it is enabled in the settings. on Mon, 22 Jun 2026 16:34:48 GMT]]></title><description><![CDATA[<p dir="auto">Please note that since I updated my forum to the current version of develop there are errors like this in the console:</p>
<pre><code>nodebb.min.js?v=ee184c5e051:115 ServiceWorker registration succeeded.
nodebb.min.js?v=ee184c5e051:180  GET https://good-link.org/topic/128/%D7%A1%D7%A7%D7%99%D7%A8%D7%AA-%D7%9E%D7%A1%D7%A4%D7%A8-%D7%90%D7%95%D7%96%D7%A0%D7%99%D7%95%D7%AA-%D7%91%D7%9C%D7%95%D7%98%D7%95%D7%A1-%D7%9E%D7%A0%D7%99%D7%A1%D7%99%D7%95%D7%9F-%D7%90%D7%99%D7%A9%D7%99/undefined/plugins/nodebb-plugin-emoji/emoji/table.json?v=ee184c5e051 404 (Not Found)
send @ nodebb.min.js?v=ee184c5e051:180
ajax @ nodebb.min.js?v=ee184c5e051:180
r. @ nodebb.min.js?v=ee184c5e051:180
getJSON @ nodebb.min.js?v=ee184c5e051:180
l @ emoji.a0ae234478cad4ea7fe6.min.js:9
(אנונימית) @ nodebb.min.js?v=ee184c5e051:114
dispatch @ nodebb.min.js?v=ee184c5e051:177
Fe.handle @ nodebb.min.js?v=ee184c5e051:177
trigger @ nodebb.min.js?v=ee184c5e051:178
(אנונימית) @ nodebb.min.js?v=ee184c5e051:178
each @ nodebb.min.js?v=ee184c5e051:177
each @ nodebb.min.js?v=ee184c5e051:177
trigger @ nodebb.min.js?v=ee184c5e051:178
n.init @ 95692.92188970b5a7d5a5d218.min.js:1
F @ topic.e663e5599849111939b5.min.js:3
b.init @ topic.e663e5599849111939b5.min.js:1
await in b.init
(אנונימית) @ nodebb.min.js?v=ee184c5e051:114
Promise.then
(אנונימית) @ nodebb.min.js?v=ee184c5e051:114
await in (אנונימית)
(אנונימית) @ nodebb.min.js?v=ee184c5e051:114
(אנונימית) @ nodebb.min.js?v=ee184c5e051:114
Promise.then
ajaxify.loadScript @ nodebb.min.js?v=ee184c5e051:114
ajaxify.end @ nodebb.min.js?v=ee184c5e051:114
ajaxify.coldLoad @ nodebb.min.js?v=ee184c5e051:114
j @ nodebb.min.js?v=ee184c5e051:177
dispatch @ nodebb.min.js?v=ee184c5e051:177
Fe.handle @ nodebb.min.js?v=ee184c5e051:177
trigger @ nodebb.min.js?v=ee184c5e051:178
(אנונימית) @ nodebb.min.js?v=ee184c5e051:178
each @ nodebb.min.js?v=ee184c5e051:177
each @ nodebb.min.js?v=ee184c5e051:177
trigger @ nodebb.min.js?v=ee184c5e051:178
l @ nodebb.min.js?v=ee184c5e051:130
R.fire @ nodebb.min.js?v=ee184c5e051:130
(אנונימית) @ nodebb.min.js?v=ee184c5e051:114
(אנונימית) @ nodebb.min.js?v=ee184c5e051:114
Promise.then
app.load @ nodebb.min.js?v=ee184c5e051:114
(אנונימית) @ nodebb.min.js?v=ee184c5e051:114
await in (אנונימית)
Fe @ nodebb.min.js?v=ee184c5e051:177
Tt @ nodebb.min.js?v=ee184c5e051:177
setTimeout
(אנונימית) @ nodebb.min.js?v=ee184c5e051:177
B @ nodebb.min.js?v=ee184c5e051:177
fireWith @ nodebb.min.js?v=ee184c5e051:177
fire @ nodebb.min.js?v=ee184c5e051:177
B @ nodebb.min.js?v=ee184c5e051:177
fireWith @ nodebb.min.js?v=ee184c5e051:177
ready @ nodebb.min.js?v=ee184c5e051:177
setTimeout
(אנונימית) @ nodebb.min.js?v=ee184c5e051:177
(אנונימית) @ nodebb.min.js?v=ee184c5e051:177
74692 @ nodebb.min.js?v=ee184c5e051:177
Je @ nodebb.min.js?v=ee184c5e051:194
67032 @ nodebb.min.js?v=ee184c5e051:114
Je @ nodebb.min.js?v=ee184c5e051:194
(אנונימית) @ nodebb.min.js?v=ee184c5e051:195
(אנונימית) @ nodebb.min.js?v=ee184c5e051:195
(אנונימית) @ nodebb.min.js?v=ee184c5e051:195
emoji.a0ae234478cad4ea7fe6.min.js:9 Error: &lsqb;&lsqb;emoji:meta-load-failed&rsqb;&rsqb;
    at Object. (emoji.a0ae234478cad4ea7fe6.min.js:9:1882)
    at y (emoji.a0ae234478cad4ea7fe6.min.js:1:1527)
    at Object.next (emoji.a0ae234478cad4ea7fe6.min.js:1:810)
    at emoji.a0ae234478cad4ea7fe6.min.js:1:439
    at new Promise ()
    at D (emoji.a0ae234478cad4ea7fe6.min.js:1:236)
    at emoji.a0ae234478cad4ea7fe6.min.js:9:1787
(אנונימית) @ emoji.a0ae234478cad4ea7fe6.min.js:9
y @ emoji.a0ae234478cad4ea7fe6.min.js:1
(אנונימית) @ emoji.a0ae234478cad4ea7fe6.min.js:1
(אנונימית) @ emoji.a0ae234478cad4ea7fe6.min.js:1
D @ emoji.a0ae234478cad4ea7fe6.min.js:1
(אנונימית) @ emoji.a0ae234478cad4ea7fe6.min.js:9
Promise.catch
l @ emoji.a0ae234478cad4ea7fe6.min.js:9
(אנונימית) @ nodebb.min.js?v=ee184c5e051:114
dispatch @ nodebb.min.js?v=ee184c5e051:177
Fe.handle @ nodebb.min.js?v=ee184c5e051:177
trigger @ nodebb.min.js?v=ee184c5e051:178
(אנונימית) @ nodebb.min.js?v=ee184c5e051:178
each @ nodebb.min.js?v=ee184c5e051:177
each @ nodebb.min.js?v=ee184c5e051:177
trigger @ nodebb.min.js?v=ee184c5e051:178
n.init @ 95692.92188970b5a7d5a5d218.min.js:1
F @ topic.e663e5599849111939b5.min.js:3
b.init @ topic.e663e5599849111939b5.min.js:1
await in b.init
(אנונימית) @ nodebb.min.js?v=ee184c5e051:114
Promise.then
(אנונימית) @ nodebb.min.js?v=ee184c5e051:114
await in (אנונימית)
(אנונימית) @ nodebb.min.js?v=ee184c5e051:114
(אנונימית) @ nodebb.min.js?v=ee184c5e051:114
Promise.then
ajaxify.loadScript @ nodebb.min.js?v=ee184c5e051:114
ajaxify.end @ nodebb.min.js?v=ee184c5e051:114
ajaxify.coldLoad @ nodebb.min.js?v=ee184c5e051:114
j @ nodebb.min.js?v=ee184c5e051:177
dispatch @ nodebb.min.js?v=ee184c5e051:177
Fe.handle @ nodebb.min.js?v=ee184c5e051:177
trigger @ nodebb.min.js?v=ee184c5e051:178
(אנונימית) @ nodebb.min.js?v=ee184c5e051:178
each @ nodebb.min.js?v=ee184c5e051:177
each @ nodebb.min.js?v=ee184c5e051:177
trigger @ nodebb.min.js?v=ee184c5e051:178
l @ nodebb.min.js?v=ee184c5e051:130
R.fire @ nodebb.min.js?v=ee184c5e051:130
(אנונימית) @ nodebb.min.js?v=ee184c5e051:114
(אנונימית) @ nodebb.min.js?v=ee184c5e051:114
Promise.then
app.load @ nodebb.min.js?v=ee184c5e051:114
(אנונימית) @ nodebb.min.js?v=ee184c5e051:114
await in (אנונימית)
Fe @ nodebb.min.js?v=ee184c5e051:177
Tt @ nodebb.min.js?v=ee184c5e051:177
setTimeout
(אנונימית) @ nodebb.min.js?v=ee184c5e051:177
B @ nodebb.min.js?v=ee184c5e051:177
fireWith @ nodebb.min.js?v=ee184c5e051:177
fire @ nodebb.min.js?v=ee184c5e051:177
B @ nodebb.min.js?v=ee184c5e051:177
fireWith @ nodebb.min.js?v=ee184c5e051:177
ready @ nodebb.min.js?v=ee184c5e051:177
setTimeout
(אנונימית) @ nodebb.min.js?v=ee184c5e051:177
(אנונימית) @ nodebb.min.js?v=ee184c5e051:177
74692 @ nodebb.min.js?v=ee184c5e051:177
Je @ nodebb.min.js?v=ee184c5e051:194
67032 @ nodebb.min.js?v=ee184c5e051:114
Je @ nodebb.min.js?v=ee184c5e051:194
(אנונימית) @ nodebb.min.js?v=ee184c5e051:195
(אנונימית) @ nodebb.min.js?v=ee184c5e051:195
(אנונימית) @ nodebb.min.js?v=ee184c5e051:195
19:1 Uncaught (in promise) {readyState: 4, getResponseHeader: ƒ, getAllResponseHeaders: ƒ, setRequestHeader: ƒ, overrideMimeType: ƒ, …}
setTimeout
(אנונימית) @ nodebb.min.js?v=ee184c5e051:177
B @ nodebb.min.js?v=ee184c5e051:177
fireWith @ nodebb.min.js?v=ee184c5e051:177
fire @ nodebb.min.js?v=ee184c5e051:177
B @ nodebb.min.js?v=ee184c5e051:177
fireWith @ nodebb.min.js?v=ee184c5e051:177
Tn @ nodebb.min.js?v=ee184c5e051:180
(אנונימית) @ nodebb.min.js?v=ee184c5e051:180
XMLHttpRequest.send
send @ nodebb.min.js?v=ee184c5e051:180
ajax @ nodebb.min.js?v=ee184c5e051:180
r. @ nodebb.min.js?v=ee184c5e051:180
getJSON @ nodebb.min.js?v=ee184c5e051:180
l @ emoji.a0ae234478cad4ea7fe6.min.js:9
(אנונימית) @ nodebb.min.js?v=ee184c5e051:114
dispatch @ nodebb.min.js?v=ee184c5e051:177
Fe.handle @ nodebb.min.js?v=ee184c5e051:177
trigger @ nodebb.min.js?v=ee184c5e051:178
(אנונימית) @ nodebb.min.js?v=ee184c5e051:178
each @ nodebb.min.js?v=ee184c5e051:177
each @ nodebb.min.js?v=ee184c5e051:177
trigger @ nodebb.min.js?v=ee184c5e051:178
n.init @ 95692.92188970b5a7d5a5d218.min.js:1
F @ topic.e663e5599849111939b5.min.js:3
b.init @ topic.e663e5599849111939b5.min.js:1
await in b.init
(אנונימית) @ nodebb.min.js?v=ee184c5e051:114
Promise.then
(אנונימית) @ nodebb.min.js?v=ee184c5e051:114
await in (אנונימית)
(אנונימית) @ nodebb.min.js?v=ee184c5e051:114
(אנונימית) @ nodebb.min.js?v=ee184c5e051:114
Promise.then
ajaxify.loadScript @ nodebb.min.js?v=ee184c5e051:114
ajaxify.end @ nodebb.min.js?v=ee184c5e051:114
ajaxify.coldLoad @ nodebb.min.js?v=ee184c5e051:114
j @ nodebb.min.js?v=ee184c5e051:177
dispatch @ nodebb.min.js?v=ee184c5e051:177
Fe.handle @ nodebb.min.js?v=ee184c5e051:177
trigger @ nodebb.min.js?v=ee184c5e051:178
(אנונימית) @ nodebb.min.js?v=ee184c5e051:178
each @ nodebb.min.js?v=ee184c5e051:177
each @ nodebb.min.js?v=ee184c5e051:177
trigger @ nodebb.min.js?v=ee184c5e051:178
l @ nodebb.min.js?v=ee184c5e051:130
R.fire @ nodebb.min.js?v=ee184c5e051:130
(אנונימית) @ nodebb.min.js?v=ee184c5e051:114
(אנונימית) @ nodebb.min.js?v=ee184c5e051:114
Promise.then
app.load @ nodebb.min.js?v=ee184c5e051:114
(אנונימית) @ nodebb.min.js?v=ee184c5e051:114
await in (אנונימית)
Fe @ nodebb.min.js?v=ee184c5e051:177
Tt @ nodebb.min.js?v=ee184c5e051:177
setTimeout
(אנונימית) @ nodebb.min.js?v=ee184c5e051:177
B @ nodebb.min.js?v=ee184c5e051:177
fireWith @ nodebb.min.js?v=ee184c5e051:177
fire @ nodebb.min.js?v=ee184c5e051:177
B @ nodebb.min.js?v=ee184c5e051:177
fireWith @ nodebb.min.js?v=ee184c5e051:177
ready @ nodebb.min.js?v=ee184c5e051:177
setTimeout
(אנונימית) @ nodebb.min.js?v=ee184c5e051:177
(אנונימית) @ nodebb.min.js?v=ee184c5e051:177
74692 @ nodebb.min.js?v=ee184c5e051:177
Je @ nodebb.min.js?v=ee184c5e051:194
67032 @ nodebb.min.js?v=ee184c5e051:114
Je @ nodebb.min.js?v=ee184c5e051:194
(אנונימית) @ nodebb.min.js?v=ee184c5e051:195
(אנונימית) @ nodebb.min.js?v=ee184c5e051:195
(אנונימית) @ nodebb.min.js?v=ee184c5e051:195
19:1 The resource https://good-link.org/assets/uploads/system/notocoloremoji-regular.ttf was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.

</code></pre>
<p dir="auto">I also see errors like this in the forum here</p>
<p dir="auto">Here in this forum the errors shown</p>
<pre><code>nodebb.min.js?v=0f27eef3dcd:12 ServiceWorker registration succeeded.
undefined/plugins/nodebb-plugin-emoji/emoji/table.json?v=0f27eef3dcd:1  Failed to load resource: the server responded with a status of 404 (Not Found)
emoji.a0ae234478cad4ea7fe6.min.js:9 Error: &lsqb;&lsqb;emoji:meta-load-failed&rsqb;&rsqb;
    at Object. (emoji.a0ae234478cad4ea7fe6.min.js:9:1882)
    at y (emoji.a0ae234478cad4ea7fe6.min.js:1:1527)
    at Object.next (emoji.a0ae234478cad4ea7fe6.min.js:1:810)
    at emoji.a0ae234478cad4ea7fe6.min.js:1:439
    at new Promise ()
    at D (emoji.a0ae234478cad4ea7fe6.min.js:1:236)
    at emoji.a0ae234478cad4ea7fe6.min.js:9:1787
(anonymous) @ emoji.a0ae234478cad4ea7fe6.min.js:9
14:1 Uncaught (in promise) Object
</code></pre>
]]></description><link>https://citiverse.it/post/https://community.nodebb.org/post/107410</link><guid isPermaLink="true">https://citiverse.it/post/https://community.nodebb.org/post/107410</guid><dc:creator><![CDATA[amaarets@community.nodebb.org]]></dc:creator><pubDate>Mon, 22 Jun 2026 16:34:48 GMT</pubDate></item><item><title><![CDATA[Reply to It is not possible to upload zip files to the forum even though it is enabled in the settings. on Mon, 22 Jun 2026 16:23:50 GMT]]></title><description><![CDATA[<p dir="auto">&gt; <a href="/user/julian%40community.nodebb.org">@julian</a> <a href="https://community.nodebb.org/post/107408" target="_blank" rel="noopener noreferrer nofollow ugc">כתב</a>:<br />
&gt;<br />
&gt; <a href="/user/amaarets%40community.nodebb.org">@AMAARETS</a> can you try now with the latest <code>develop</code> branch commit?<br />
&gt;<br />
&gt; A mime alias mapping was added to handle the different formats that Windows sends in. I added another entry for rar as well. There is additional handling for file formats that the browser doesn't understand (and thus reports <code>application/octet-stream</code> for.</p>
<p dir="auto">Now it works on the ZIP file I tested before, thanks</p>
<p dir="auto">Just a quick question - I'm wondering what information I'm missing here<br />
Why maintain a list of aliases, and not do the comparison by checking in reverse whether mime.getExtension(application/x-zip-compressed) returns a valid extension like ZIP, so it will work even though a check of mime.getType(file.zip) returns application/zip and not application/x-zip-compressed<br />
Can't it actually be used as an alias list that is automatically maintained by the mime package?</p>
]]></description><link>https://citiverse.it/post/https://community.nodebb.org/post/107409</link><guid isPermaLink="true">https://citiverse.it/post/https://community.nodebb.org/post/107409</guid><dc:creator><![CDATA[amaarets@community.nodebb.org]]></dc:creator><pubDate>Mon, 22 Jun 2026 16:23:50 GMT</pubDate></item><item><title><![CDATA[Reply to It is not possible to upload zip files to the forum even though it is enabled in the settings. on Mon, 22 Jun 2026 16:05:24 GMT]]></title><description><![CDATA[<p dir="auto"><a href="/user/amaarets%40community.nodebb.org">@AMAARETS</a> can you try now with the latest <code>develop</code> branch commit?</p>
<p dir="auto">A mime alias mapping was added to handle the different formats that Windows sends in. I added another entry for rar as well. There is additional handling for file formats that the browser doesn't understand (and thus reports <code>application/octet-stream</code> for.</p>
]]></description><link>https://citiverse.it/post/https://community.nodebb.org/post/107408</link><guid isPermaLink="true">https://citiverse.it/post/https://community.nodebb.org/post/107408</guid><dc:creator><![CDATA[julian@community.nodebb.org]]></dc:creator><pubDate>Mon, 22 Jun 2026 16:05:24 GMT</pubDate></item><item><title><![CDATA[Reply to It is not possible to upload zip files to the forum even though it is enabled in the settings. on Sun, 21 Jun 2026 07:16:20 GMT]]></title><description><![CDATA[<p dir="auto">&gt; <a href="/user/julian%40community.nodebb.org">@julian</a> <a href="https://community.nodebb.org/post/107401" target="_blank" rel="noopener noreferrer nofollow ugc">said</a>:<br />
&gt;<br />
&gt; <a href="/user/amaarets%40community.nodebb.org">@AMAARETS</a> seems a windows issue. I'll have to special case it.<br />
&gt;<br />
&gt; RAR files don't work either?</p>
<p dir="auto">Yes, I think</p>
<p dir="auto">I think what was reported <a href="https://community.nodebb.org/post/107378" target="_blank" rel="noopener noreferrer nofollow ugc">here</a> is also the same problem, where he mentioned a number of additional extensions</p>
]]></description><link>https://citiverse.it/post/https://community.nodebb.org/post/107402</link><guid isPermaLink="true">https://citiverse.it/post/https://community.nodebb.org/post/107402</guid><dc:creator><![CDATA[amaarets@community.nodebb.org]]></dc:creator><pubDate>Sun, 21 Jun 2026 07:16:20 GMT</pubDate></item><item><title><![CDATA[Reply to It is not possible to upload zip files to the forum even though it is enabled in the settings. on Sun, 21 Jun 2026 02:20:23 GMT]]></title><description><![CDATA[<p dir="auto"><a href="/user/amaarets%40community.nodebb.org">@AMAARETS</a> seems a windows issue. I'll have to special case it.</p>
<p dir="auto">RAR files don't work either?</p>
]]></description><link>https://citiverse.it/post/https://community.nodebb.org/post/107401</link><guid isPermaLink="true">https://citiverse.it/post/https://community.nodebb.org/post/107401</guid><dc:creator><![CDATA[julian@community.nodebb.org]]></dc:creator><pubDate>Sun, 21 Jun 2026 02:20:23 GMT</pubDate></item><item><title><![CDATA[Reply to It is not possible to upload zip files to the forum even though it is enabled in the settings. on Sun, 21 Jun 2026 01:22:19 GMT]]></title><description><![CDATA[<p dir="auto">It should be noted that although checking the type that matches the zip extension by the MIME package returns application/zip and not application/x-zip-compressed, checking the extension that matches the application/x-zip-compressed type does return zip, so it may be possible to perform the validation in a way that is compatible with all browsers.</p>
]]></description><link>https://citiverse.it/post/https://community.nodebb.org/post/107400</link><guid isPermaLink="true">https://citiverse.it/post/https://community.nodebb.org/post/107400</guid><dc:creator><![CDATA[amaarets@community.nodebb.org]]></dc:creator><pubDate>Sun, 21 Jun 2026 01:22:19 GMT</pubDate></item><item><title><![CDATA[Reply to It is not possible to upload zip files to the forum even though it is enabled in the settings. on Sun, 21 Jun 2026 00:58:55 GMT]]></title><description><![CDATA[<p dir="auto">&gt; <a href="/user/julian%40community.nodebb.org">@julian</a> <a href="https://community.nodebb.org/post/107398" target="_blank" rel="noopener noreferrer nofollow ugc">said</a>:<br />
&gt;<br />
&gt; <a href="/user/amaarets%40community.nodebb.org">@AMAARETS</a> I don't think it's browser specific since the checks live on the backend.<br />
&gt;<br />
&gt; I'll try with a RAR file.</p>
<p dir="auto">Since I didn't trust myself to identify the problem with the function for sure, I preferred to actually check it by printing the variable data to the terminal, I changed the function to this:</p>
<pre><code>async function validateUploadedFileMime(uploadedFile) {
	console.log('===== MIME Validation Start =====');
	console.log('1. uploadedFile object metadata:');
	console.log('   - Name:', uploadedFile.name);
	console.log('   - Path:', uploadedFile.path);
	console.log('   - Type (from request/browser):', uploadedFile.type);
	console.log('   - Size:', uploadedFile.size);

	const detected = await fileTypeFromFile(uploadedFile.path);
	console.log('2. file-type library detection:', detected || 'null (could not detect by content)');

	const mimeFromExt = mime.getType(uploadedFile.name);
	console.log('3. mime library detection (by extension):', mimeFromExt || 'null (could not detect by extension)');

	const detectedMimeType = detected ? detected.mime : mimeFromExt;
	console.log('4. Final detectedMimeType to compare:', detectedMimeType);

	const hasDetected = !!detectedMimeType;
	const hasUploadedType = !!uploadedFile.type;
	const isMismatch = detectedMimeType !== uploadedFile.type;

	console.log('5. Conditions check:');
	console.log('   - Has detected MIME?:', hasDetected);
	console.log('   - Has uploaded type from request?:', hasUploadedType);
	console.log('   - Is there a mismatch?:', isMismatch);

	if (detectedMimeType &amp;amp;&amp;amp; uploadedFile.type &amp;amp;&amp;amp; detectedMimeType !== uploadedFile.type) {
		console.error('❌ VALIDATION FAILED: MIME mismatch!');
		console.error(`   Expected (from file content/ext): "${detectedMimeType}"`);
		console.error(`   Received (from request/browser): "${uploadedFile.type}"`);
		console.log('==================================');
		throw new Error('&amp;lsqb;&amp;lsqb;error:invalid-mime-type&amp;rsqb;&amp;rsqb;');
	}

	console.log('✅ VALIDATION PASSED');
	console.log('==================================');
}
</code></pre>
<p dir="auto">And this is the output</p>
<pre><code>===== MIME Validation Start =====
1. uploadedFile object metadata:
   - Name: בדיקה-מחשב-מק.zip
   - Path: /tmp/91c31e55fb2334122e3c21aace4755f3
   - Type (from request/browser): application/x-zip-compressed
   - Size: 204

2. file-type library detection: 
   { ext: 'zip', mime: 'application/zip' }

3. mime library detection (by extension): 
   application/zip

4. Final detectedMimeType to compare: 
   application/zip

5. Conditions check:
   - Has detected MIME?: true
   - Has uploaded type from request?: true
   - Is there a mismatch?: true

❌ VALIDATION FAILED: MIME mismatch!
   Expected (from file content/ext): "application/zip"
   Received (from request/browser): "application/x-zip-compressed"
==================================
</code></pre>
<p dir="auto">As you can clearly see there is a mismatch of expectations between the browser and the server</p>
]]></description><link>https://citiverse.it/post/https://community.nodebb.org/post/107399</link><guid isPermaLink="true">https://citiverse.it/post/https://community.nodebb.org/post/107399</guid><dc:creator><![CDATA[amaarets@community.nodebb.org]]></dc:creator><pubDate>Sun, 21 Jun 2026 00:58:55 GMT</pubDate></item><item><title><![CDATA[Reply to It is not possible to upload zip files to the forum even though it is enabled in the settings. on Sun, 21 Jun 2026 00:29:37 GMT]]></title><description><![CDATA[<p dir="auto"><a href="/user/amaarets%40community.nodebb.org">@AMAARETS</a> I don't think it's browser specific since the checks live on the backend.</p>
<p dir="auto">I'll try with a RAR file.</p>
]]></description><link>https://citiverse.it/post/https://community.nodebb.org/post/107398</link><guid isPermaLink="true">https://citiverse.it/post/https://community.nodebb.org/post/107398</guid><dc:creator><![CDATA[julian@community.nodebb.org]]></dc:creator><pubDate>Sun, 21 Jun 2026 00:29:37 GMT</pubDate></item><item><title><![CDATA[Reply to It is not possible to upload zip files to the forum even though it is enabled in the settings. on Sun, 21 Jun 2026 00:16:51 GMT]]></title><description><![CDATA[<p dir="auto">&gt; <a href="/user/julian%40community.nodebb.org">@julian</a> <a href="https://community.nodebb.org/post/107396" target="_blank" rel="noopener noreferrer nofollow ugc">said</a>:<br />
&gt;<br />
&gt; <a href="/user/amaarets%40community.nodebb.org">@AMAARETS</a> any chance you can let me know which file it is?<br />
&gt;<br />
&gt; I tried uploading a ZIP file and it worked okay.</p>
<p dir="auto">What browser did you use?<br />
How does it define the file type of a ZIP file?</p>
<p dir="auto">I don't have permission to upload files here, so I can't send you the file I tried, but it's not just a specific file, but any file with a ZIP and RAR extension in certain browsers (there may be other extensions that cause problems).</p>
]]></description><link>https://citiverse.it/post/https://community.nodebb.org/post/107397</link><guid isPermaLink="true">https://citiverse.it/post/https://community.nodebb.org/post/107397</guid><dc:creator><![CDATA[amaarets@community.nodebb.org]]></dc:creator><pubDate>Sun, 21 Jun 2026 00:16:51 GMT</pubDate></item><item><title><![CDATA[Reply to It is not possible to upload zip files to the forum even though it is enabled in the settings. on Sat, 20 Jun 2026 23:56:33 GMT]]></title><description><![CDATA[<p dir="auto"><a href="/user/amaarets%40community.nodebb.org">@AMAARETS</a> any chance you can let me know which file it is?</p>
<p dir="auto">I tried uploading a ZIP file and it worked okay.</p>
]]></description><link>https://citiverse.it/post/https://community.nodebb.org/post/107396</link><guid isPermaLink="true">https://citiverse.it/post/https://community.nodebb.org/post/107396</guid><dc:creator><![CDATA[julian@community.nodebb.org]]></dc:creator><pubDate>Sat, 20 Jun 2026 23:56:33 GMT</pubDate></item><item><title><![CDATA[Reply to It is not possible to upload zip files to the forum even though it is enabled in the settings. on Sat, 20 Jun 2026 23:18:57 GMT]]></title><description><![CDATA[<p dir="auto">&gt; <a href="/user/julian%40community.nodebb.org">@julian</a> <a href="https://community.nodebb.org/post/107392" target="_blank" rel="noopener noreferrer nofollow ugc">said</a>:<br />
&gt;<br />
&gt; <a href="/user/amaarets%40community.nodebb.org">@AMAARETS</a> what I mean is, I think commits in the latest develop fixed this. Can you try again?</p>
<p dir="auto">Oh, thanks, Google Translate completely messed up your comment...</p>
<p dir="auto">I updated my forum to the develop branch and built and relaunched, and the error is still there</p>
]]></description><link>https://citiverse.it/post/https://community.nodebb.org/post/107395</link><guid isPermaLink="true">https://citiverse.it/post/https://community.nodebb.org/post/107395</guid><dc:creator><![CDATA[amaarets@community.nodebb.org]]></dc:creator><pubDate>Sat, 20 Jun 2026 23:18:57 GMT</pubDate></item><item><title><![CDATA[Reply to It is not possible to upload zip files to the forum even though it is enabled in the settings. on Sat, 20 Jun 2026 19:05:56 GMT]]></title><description><![CDATA[<p dir="auto"><a href="/user/amaarets%40community.nodebb.org">@AMAARETS</a> what I mean is, I think commits in the latest develop fixed this. Can you try again?</p>
]]></description><link>https://citiverse.it/post/https://community.nodebb.org/post/107392</link><guid isPermaLink="true">https://citiverse.it/post/https://community.nodebb.org/post/107392</guid><dc:creator><![CDATA[julian@community.nodebb.org]]></dc:creator><pubDate>Sat, 20 Jun 2026 19:05:56 GMT</pubDate></item><item><title><![CDATA[Reply to It is not possible to upload zip files to the forum even though it is enabled in the settings. on Sat, 20 Jun 2026 18:21:32 GMT]]></title><description><![CDATA[<p dir="auto">&gt; <a href="/user/julian%40community.nodebb.org">@julian</a> <a href="https://community.nodebb.org/post/107383" target="_blank" rel="noopener noreferrer nofollow ugc">said</a>:<br />
&gt;<br />
&gt; <a href="/user/amaarets%40community.nodebb.org">@AMAARETS</a> hi, I'm not seeing this on the latest develop. Can you try there?</p>
<p dir="auto">I didn't mean that this code snippet exists in the core, it's just a short code sample to see what the MIME package returns on a ZIP extension.</p>
<p dir="auto">The relevant code is <a href="https://github.com/NodeBB/NodeBB/blob/6d59c079cc8471467abedec151a45e6c1a320d80/src/controllers/uploads.js#L221" target="_blank" rel="noopener noreferrer nofollow ugc">here</a> I think</p>
<p dir="auto"><strong>Edit:</strong> I just saw that a bug report has already been added to GitHub regarding this matter.<br />
<a href="https://github.com/NodeBB/NodeBB/issues/14359#issue-4702822194" target="_blank" rel="noopener noreferrer nofollow ugc">https://github.com/NodeBB/NodeBB/issues/14359#issue-4702822194</a></p>
]]></description><link>https://citiverse.it/post/https://community.nodebb.org/post/107391</link><guid isPermaLink="true">https://citiverse.it/post/https://community.nodebb.org/post/107391</guid><dc:creator><![CDATA[amaarets@community.nodebb.org]]></dc:creator><pubDate>Sat, 20 Jun 2026 18:21:32 GMT</pubDate></item><item><title><![CDATA[Reply to It is not possible to upload zip files to the forum even though it is enabled in the settings. on Fri, 19 Jun 2026 20:53:07 GMT]]></title><description><![CDATA[<p dir="auto"><a href="https://community.nodebb.org/user/amaarets" target="_blank" rel="noopener noreferrer nofollow ugc">@AMAARETS</a> hi, I'm not seeing this on the latest develop. Can you try there?</p>
]]></description><link>https://citiverse.it/post/https://community.nodebb.org/post/107383</link><guid isPermaLink="true">https://citiverse.it/post/https://community.nodebb.org/post/107383</guid><dc:creator><![CDATA[julian@community.nodebb.org]]></dc:creator><pubDate>Fri, 19 Jun 2026 20:53:07 GMT</pubDate></item></channel></rss>