nette/http

FileUpload::getSanitizedName returns wrong file extension

hubipe opened this issue · 2 comments

Version: 3.3.0

Bug Description

When uploading file.xls, method getSanitizedName() returns file.doc instead of file.xls.

Steps To Reproduce

Create a file upload and upload Microsoft Excel file with the old extension .xls. Dump FileUpload::getSanitizedName().

Expected Behavior

Method for returning sanitize name should return file.xls

Possible Solution

I've noticed, that the behavior of this method changed in the 3.2.4. The intention of the change was probably to return the correct extension for the image file uploads, but this change broke backwards compatibility for other types of files. Possible solution is to use finfo_file only for images?

kuty commented

I can confirm, this "improvement" is causing a lot of troubles.. in our case e.g. .xlsm is saved as .xlsx and much more. It is also not possible to disable this magic.

@dg - d7cc833

Shall I prepare a PR for the suggested solution?
I had to cap nette/http to the version 3.2.3. But there is already version 3.3. Either I have to update an application to stop using getSanitizedName() or fix this issue.
So the question is - is this behavior stay as is or this change is unintended?