Skip to content

Commit a6b4eb2

Browse files
authored
Merge pull request #2104 from MGatner/bugfix-file-extensions
File & UploadFile Fixes
2 parents cc60dad + c100a3a commit a6b4eb2

File tree

2 files changed

+10
-7
lines changed

2 files changed

+10
-7
lines changed

system/Files/File.php

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,9 @@ public function getMimeType(): string
150150
*/
151151
public function getRandomName(): string
152152
{
153-
return time() . '_' . bin2hex(random_bytes(10)) . '.' . $this->getExtension();
153+
$extension = $this->getExtension();
154+
$extension = empty($extension) ? '' : '.' . $extension;
155+
return time() . '_' . bin2hex(random_bytes(10)) . $extension;
154156
}
155157

156158
//--------------------------------------------------------------------
@@ -203,6 +205,7 @@ public function getDestination(string $destination, string $delimiter = '_', int
203205
while (is_file($destination))
204206
{
205207
$info = pathinfo($destination);
208+
$extension = isset($info['extension']) ? '.' . $info['extension'] : '';
206209
if (strpos($info['filename'], $delimiter) !== false)
207210
{
208211
$parts = explode($delimiter, $info['filename']);
@@ -211,16 +214,16 @@ public function getDestination(string $destination, string $delimiter = '_', int
211214
$i = end($parts);
212215
array_pop($parts);
213216
array_push($parts, ++ $i);
214-
$destination = $info['dirname'] . '/' . implode($delimiter, $parts) . '.' . $info['extension'];
217+
$destination = $info['dirname'] . '/' . implode($delimiter, $parts) . $extension;
215218
}
216219
else
217220
{
218-
$destination = $info['dirname'] . '/' . $info['filename'] . $delimiter . ++ $i . '.' . $info['extension'];
221+
$destination = $info['dirname'] . '/' . $info['filename'] . $delimiter . ++ $i . $extension;
219222
}
220223
}
221224
else
222225
{
223-
$destination = $info['dirname'] . '/' . $info['filename'] . $delimiter . ++ $i . '.' . $info['extension'];
226+
$destination = $info['dirname'] . '/' . $info['filename'] . $delimiter . ++ $i . $extension;
224227
}
225228
}
226229
return $destination;

user_guide_src/source/libraries/uploaded_files.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -200,12 +200,12 @@ trusted version, use ``getExtension()`` instead::
200200

201201
$ext = $file->getClientExtension();
202202

203-
**getClientType()**
203+
**getClientMimeType()**
204204

205205
Returns the mime type (mime type) of the file as provided by the client. This is NOT a trusted value. For a trusted
206-
version, use ``getType()`` instead::
206+
version, use ``getMimeType()`` instead::
207207

208-
$type = $file->getClientType();
208+
$type = $file->getClientMimeType();
209209

210210
echo $type; // image/png
211211

0 commit comments

Comments
 (0)