The following files exists in this folder. Click to view.
f_file_upload.php53 lines UTF-8 Unix (LF)
<?php
#!!!VIKTIGT!!! Jag använde ChatGPT för att generera denna kod. Jag har inte skapat den. Filuppladdning är svårt.
#Jag har kommenterat koden så jag har en övergripande uppfattning över hur det fungerar men jag kan inte säga att jag förstår till fullo.
function fileUpload(string $inputName, string $destination, string $forcedExtension = null): bool
{
$maxSize = 2 * 1024 * 1024;
if (!isset($_FILES[$inputName])) { #ser så att filen finns från först början
return false;
}
$file = $_FILES[$inputName];
if ($file['size'] > $maxSize) { #är bilden större än högsta tillåtna storlek (2MB)
return false; #stoppas uppladdningen
}
$destination = rtrim(__DIR__ . '/' . $destination, '/') . '/'; #gör destinationen relativ till filen funktionen körs i
if (!is_dir($destination)) { #finns inte destinationen...
mkdir($destination, 0755, true); #så skapas en mapp
}
$extension = $forcedExtension ?? pathinfo($file['name'], PATHINFO_EXTENSION); #hämtar filändelse
$targetPath = $destination . $inputName . '.' . $extension; #döper om filen så att den alltid har ändelsen med "rätt" ändelse (konverterar inte filen)
return move_uploaded_file($file['tmp_name'], $targetPath);
}
function checkFileSize(string $inputName, int $maxSizeBytes = 2097152): bool
{
if (!isset($_FILES[$inputName])) {
return false; // ingen fil
}
$file = $_FILES[$inputName];
return $file['size'] <= $maxSizeBytes;
}
?>