<div dir="ltr"><div dir="ltr"><div dir="ltr">Just further on this,<div>it seems there may be potential issues with other file types with this check,</div><div>e.g. today I got the message </div><div>"<i style="color:rgb(0,0,0);font-size:1.22em">map.png</i><span style="color:rgb(0,0,0);font-size:1.22em">: extension 'png' doesn't match file type 'image/jpeg'</span>"</div><div>In upload.php we see "'png' => 'image/png'"</div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, 27 Dec 2023 at 00:07, Petko Yotov <<a href="mailto:5ko@5ko.fr">5ko@5ko.fr</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Thanks for the report, there was an omission in DDMU, should be fixed in <br>
20231226, please update both ddmu.php and ddmu.js.<br>
<br>
Unlike the core upload form, DDMU did not report the detected MIME type. <br>
Version 20231226 does, when you place the mouse over the failed file <br>
name, it says "extension 'gpx' doesn't match file type 'text/xml'".<br>
<br>
The detected MIME type for a GPX file appears to be text/xml. So to <br>
allow this alternative MIME type, place the following in config.php:<br>
<br>
   $EnableUploadMimeMatch = array(<br>
     'gpx'=>'!^(text/xml)$!',<br>
   );<br>
<br>
Instead of $EnableUploadMimeMatch = 1;<br>
<br>
Alternatively, you could technically define:<br>
<br>
   $UploadExts['gpx'] = 'text/xml'; # avoid this<br>
<br>
...but I suspect this might cause problems when $EnableDirectDownload is <br>
disabled and the attached GPX files are used to draw lines on maps.<br>
<br>
Petko<br>
<br>
On 26/12/2023 10:59, Simon wrote:<br>
> in config.php I have<br>
> $UploadExts['gpx'] = 'application/gpx+xml';<br>
> and am using $EnableUploadMimeMatch<br>
> <br>
> Now when I try to upload (a properly formed) .gpx file<br>
> DDMU gives the message 'extension "doesn't match the file type"'<br>
> (which means the check is now being called and is returning a message)<br>
> <br>
> is there any way to determine, or to have included in the error<br>
> message, what the expected mime type is?<br>
> While many [3] references [4] on the internet state the above<br>
> (application/gpx+xml) is the mime type for .gpx files<br>
> MIME File Type Checker - HTMLStrip [5] suggests it it "text/xml", but<br>
> I think that is because it doesn't know about.gpx files<br>
> <br>
> Others are suggested here [6].<br>
> Is it possible to add multiple values to $UploadExts?<br>
> OTOH the PmWiki documentation [1] suggests that<br>
> <br>
>  $EnableUploadMimeMatch = array(<br>
>   'csv'=>'!^(text/plain|application/csv)$!',<br>
>   'docx'=>'!^(application/encrypted)$!',<br>
> );<br>
> <br>
> is the way to manage this issue.<br>
> <br>
> thanks<br>
> <br>
> Simon<br>
> <br>
> PS<br>
> PHP: mime_content_type - Manual [7] seems to suggest the<br>
> <a href="http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types" rel="noreferrer" target="_blank">svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types</a> [3] is<br>
> the source of PHP mime types.<br>
> <br>
> On Mon, 25 Dec 2023 at 18:57, Petko Yotov <<a href="mailto:5ko@5ko.fr" target="_blank">5ko@5ko.fr</a>> wrote:<br>
> <br>
>> On 25/12/2023 07:20, Simon wrote:<br>
>>> My feeling is that all uploads should be denied.<br>
>> ...<br>
>>> for safety and visibility reasons I support denying uploads<br>
>> <br>
>> Agreed, enabled for 2.3.30, and added a new upload error message.<br>
>> <br>
>>> When using DragDropMultiUpload the upload never finished and<br>
>>> never faulted, it just hung.<br>
>>> Is there any possibility of making this visible to the user?, e.g.<br>
>>> DDMU fail with an error,<br>
>> <br>
>> Yes, the code I committed for 2.3.30, and the prerelease, should<br>
>> show<br>
>> the message in DDMU.<br>
>> <br>
>> Petko<br>
>> <br>
>>> On Mon, 25 Dec 2023 at 10:48, Petko Yotov <<a href="mailto:5ko@5ko.fr" target="_blank">5ko@5ko.fr</a>> wrote:<br>
>>> <br>
>>>> Apparently on Windows you need to enable the Fileinfo functions<br>
>> in<br>
>>>> php.ini, see:<br>
>>>> <br>
>>>> <a href="https://www.php.net/manual/en/fileinfo.installation.php" rel="noreferrer" target="_blank">https://www.php.net/manual/en/fileinfo.installation.php</a><br>
>>>> <br>
>>>> I have now documented this on the UploadVariables page.<br>
>>>> <br>
>>>> What should PmWiki do if $EnableUploadMimeMatch is enabled but<br>
>> not<br>
>>>> Fileinfo?<br>
>>>> <br>
>>>> - Act as if $EnableUploadMimeMatch is not enabled. This would<br>
>> work<br>
>>>> as it<br>
>>>> did before, other checks will be done.<br>
>>>> <br>
>>>> - Deny all uploads, since none can be checked.<br>
>>>> <br>
>>>> What do you think?<br>
>>>> <br>
>>>> Petko<br>
>>>> <br>
>>>> On 24/12/2023 21:28, Simon wrote:<br>
>>>>> Some time ago I enabled $EnableUploadMimematch [1]<br>
>>>>> <br>
>>>>> Recently I see<br>
>>>>> <br>
>>>>> [25-Dec-2023 08:25:00 Pacific/Auckland] PHP Fatal error:<br>
>> Uncaught<br>
>>>>> Error: Call to undefined function mime_content_type() in<br>
>>>>> D:\Home\KiwiWiki\pmwiki\scripts\upload.php:405<br>
>>>>> Stack trace:<br>
>>>>> #0 D:\Home\KiwiWiki\pmwiki\scripts\upload.php(317):<br>
>>>>> UploadVerifyBasic()<br>
>>>>> #1 D:\Home\KiwiWiki\pmwiki\pmwiki.php(546): HandlePostUpload()<br>
>>>>> #2 D:\Home\KiwiWiki\pmwiki\pmwiki.php(533): HandleDispatch()<br>
>>>>> #3 {main}<br>
>>>>> thrown in D:\Home\KiwiWiki\pmwiki\scripts\upload.php on line 405<br>
>>>>> <br>
>>>>> just wondering if anyone had an idea why?<br>
>>>>> <br>
>>>>> and seasons holiday's greetings from the summery south<br>
>>>>> <br>
>>>>> Simon<br>
>>>>> <br>
</blockquote></div>