View sourcecode

The following files exists in this folder. Click to view.

f_file_upload.php

53 lines UTF-8 Unix (LF)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?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 $inputNamestring $destinationstring $forcedExtension null): bool
{
    
$maxSize 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($destination0755true); #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 $inputNameint $maxSizeBytes 2097152): bool
{
    if (!isset(
$_FILES[$inputName])) {
        return 
false// ingen fil
    
}

    
$file $_FILES[$inputName];

    return 
$file['size'] <= $maxSizeBytes;
}

?>