-
Notifications
You must be signed in to change notification settings - Fork 0
/
upload.php
73 lines (61 loc) · 2.8 KB
/
upload.php
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<?php
$iUploadMaxFilesize = ini_get('upload_max_filesize');
$iMaxFileUploads = ini_get('max_file_uploads');
$aErrorTypes = [
1 => 'Die hochgeladene Datei überschreitet die in der Anweisung upload_max_filesize in php.ini festgelegte Größe.',
2 => 'Die hochgeladene Datei überschreitet die in dem HTML Formular mittels der Anweisung MAX_FILE_SIZE angegebene maximale Dateigröße. ',
3 => 'Die Datei wurde nur teilweise hochgeladen.',
4 => 'Es wurde keine Datei hochgeladen.',
6 => 'Fehlender temporärer Ordner.',
7 => 'Speichern der Datei auf die Festplatte ist fehlgeschlagen.',
8 => 'Eine PHP Erweiterung hat den Upload der Datei gestoppt. PHP bietet keine Möglichkeit an, um festzustellen welche Erweiterung das Hochladen der Datei gestoppt hat.'
];
if (isset($_FILES['mmnfiles'])) {
$aSuccess = [];
$iCount = count($_FILES['mmnfiles']['name']);
for ($i = 0; $i < $iCount; $i++) {
if ($_FILES['mmnfiles']['error'][$i] > 0) {
outputJSON('Es ist ein Fehler beim Upload der Datei "' . $_FILES['mmnfiles']['name'][$i] . '" aufgetreten: ' . $aErrorTypes[$_FILES['vs-file']['error'][$i]] );
}
if (!getimagesize($_FILES['mmnfiles']['tmp_name'][$i])) {
outputJSON('Die angegebene Datei "' . $_FILES['mmnfiles']['name'][$i] . '" ist kein Bildformat.');
}
$aAllowedMimeTypes = [ 'image/jpeg', 'image/png' ];
if (!in_array($_FILES['mmnfiles']['type'][$i], $aAllowedMimeTypes)) {
outputJSON('Der Dateityp der Datei "' . $_FILES['mmnfiles']['name'][$i] . '" wird nicht unterstützt: ' . $_FILES['mmnfile']['type'][$i]);
}
if ($_FILES['mmnfiles']['size'][$i] > 1000000) {
outputJSON('Die Datei "' . $_FILES['mmnfiles']['name'][$i] . '" ist zu groß. Bitte wählen Sie eine kleinere Datei.');
}
$sFilename = mb_ereg_replace("([^\w\s\d\-_~,;\[\]\(\).])", '', $_FILES['mmnfiles']['name'][$i]);
$sFilename = mb_ereg_replace("([\.]{2,})", '', $sFilename);
$sFilename = md5(microtime()) . '-' . strtolower($sFilename);
if (file_exists(__DIR__ . '/uploads/' . $sFilename)) {
outputJSON('Eine Datei mit dem Namen "' . $_FILES['mmnfiles']['name'][$i] . '" existiert bereits auf dem Server.');
}
if (!move_uploaded_file($_FILES['mmnfiles']['tmp_name'][$i], __DIR__ . '/uploads/' . $sFilename)) {
outputJSON('Whoooot? Das Zielverzeichnis ist nicht beschreibbar.');
}
$aSuccess[] = $i;
}
outputJSON(
'Unfassbare ' . count($aSuccess) . ' von ' . $iCount . ' Bildern wurden auf den Server geladen.',
'success',
$aSuccess
);
}
/**
* Liefert einen JSON String als Fehler- oder Erfolgsnachricht
*
* @param string $sMessage
* @param string $sStatus
*/
function outputJSON($sMessage, $sStatus = 'error', $aIndex = null) {
header('Content-Type: application/json');
$sResponse = json_encode([
'message' => $sMessage,
'type' => $sStatus,
'index' => $aIndex
]);
die($sResponse);
}