ERROR bei PHP File-Upload-Skript
Hallo Freunde,
ich habe momentan diese Skript zum PHP Upload. Wenn ich eine z.B. 4090-1.pdf nehme dann kommt folgende Fehlermeldung:
Array ( [datei] => Array ( [name] => 4090-1.pdf [type] => application/pdf [tmp_name] => /tmp/phpTq5HUB [error] => 0 [size] => 546063 ) )
Was ist da falsch??? Wohl noch ganze wichtig der hinweis: die php datei liegt auf einem 1and1 server. der upload soll aber auf meinen heimserver erfolgen. der ist mom so eingestellt dass eine website drauf gehostet ist mit größeren dateien. (das download php funktioniert schon dank der admins hier
Hier nun der upload code: (den ich von dieser Seite habe: http://www.rrze.uni-erlangen.de/dienste/web/php/artikel/datei-uploads.s ..)
ich habe momentan diese Skript zum PHP Upload. Wenn ich eine z.B. 4090-1.pdf nehme dann kommt folgende Fehlermeldung:
Array ( [datei] => Array ( [name] => 4090-1.pdf [type] => application/pdf [tmp_name] => /tmp/phpTq5HUB [error] => 0 [size] => 546063 ) )
Was ist da falsch??? Wohl noch ganze wichtig der hinweis: die php datei liegt auf einem 1and1 server. der upload soll aber auf meinen heimserver erfolgen. der ist mom so eingestellt dass eine website drauf gehostet ist mit größeren dateien. (das download php funktioniert schon dank der admins hier
Hier nun der upload code: (den ich von dieser Seite habe: http://www.rrze.uni-erlangen.de/dienste/web/php/artikel/datei-uploads.s ..)
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
<?php
// Session starten
session_start();
// Token generieren
$str_token = md5(uniqid(time()));
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<title>Upload</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
<?php
// Formular-HTML-Ausgabe oder Weiterverarbeitung
if( !isset($_POST['upload']) OR empty($_POST['upload']) ) {
echo <<<HTML
<form enctype="multipart/form-data" action="upload.php" method="post">
<fieldset>
<legend>Dateien transferieren</legend>
<p>
<label for="datei_id">Datei auswählen:</label>
<input name="datei" id="datei_id" type="file" />
<input type="hidden" name="token" value="${str_token}" />
</p>
<!-- Upload meherer Dateien
<p>
<label for="datei_id1">Datei auswählen:</label>
<input name="idxarr_datei" id="datei_id1" type="file" />
</p>
<p>
<label for="datei_id2">Datei auswählen:</label>
<input name="idxarr_datei" id="datei_id2" type="file" />
</p>
<p>
<label for="datei_id3">Datei auswählen:</label>
<input name="idxarr_datei" id="datei_id3" type="file" />
</p>
-->
<p>
<input type="submit" name="upload" value="Datei(en) hochladen!" />
</p>
</fieldset>
HTML;
} else {
// Token extrahieren
$str_post_token = $_POST['token'];
// Wenn Token als Session Variable existiert
// wurde das Formular bereits versandt
if ( isset($_SESSION['token'][$str_post_token]) ) {
echo "Sie haben das Formular bereits versandt!";
exit;
} else {
// setzen des Tokens als Session-Variable
$_SESSION['token'][$str_post_token] = true;
}
// Ueberpruefung der Dateiendung
// Dateiendung ermitteln
$str_file_ext = substr( strtolower( strrchr($_FILES['datei']['name'], '.') ), 1 );
// Array der zulaessigen Endungen
$idxarr_allowed_ext = array('txt', 'exe', 'pdf', 'odt', 'gz');
// Ueberpruefung der Dateiendung
if ( empty($str_file_ext) OR !in_array($str_file_ext, $idxarr_allowed_ext) ) {
echo "Unzulaessige Dateiendung!";
exit;
}
// Ueberpruefung der Dateigroesse
// maximal erlaube Dateigroesse in Bytes
$int_max_filesize = 2000000;
// eigentliche Ueberpruefung
if ($_FILES['datei']['size'] > $int_max_filesize) {
echo "Datei ist zu gross - Abbruch!";
exit;
}
// Zusammensetzen des vollen Pfades zum Ziel
$str_ziel = 'http://ftpuser.mine.nu/download/' .
$_FILES['datei']['name'];
// eingentlicher Transfer
move_uploaded_file($_FILES['datei']['tmp_name'], $str_ziel);
// Zugriffsrechte anpassen: Vollzugriff fuer den Webmaster,
// lesender Zugriff fuer die Gruppe und alle anderen, inkl. dem Webserver
chmod($str_ziel, 0644);
// Ausgabe aller Infos
print_r($_FILES);
}
?>
</form>
</body>
</html>
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 103588
Url: https://administrator.de/forum/error-bei-php-file-upload-skript-103588.html
Ausgedruckt am: 04.04.2025 um 17:04 Uhr
2 Kommentare
Neuester Kommentar
Mal so eine Frage:
Wie stellst du dir vor, dass PHP eine Datei per HTTP ohne jegliche Benutzerkontrolle auf einen anderen Server kopieren kann?
Das solltest du anders angehen:
Die Datei um den Upload zu verarbeiten sollte direkt auf deinem Heimserver liegen und das Upload-Formular sollte nur auf die URL verweisen.
Grüße
Max
Wie stellst du dir vor, dass PHP eine Datei per HTTP ohne jegliche Benutzerkontrolle auf einen anderen Server kopieren kann?
Das solltest du anders angehen:
Die Datei um den Upload zu verarbeiten sollte direkt auf deinem Heimserver liegen und das Upload-Formular sollte nur auf die URL verweisen.
Grüße
Max
*dog zustmm*
Außerdem ist das keine Fehlermeldung, sondern Bestandteil des Scriptes !
Nach verschieben der Datei (auf dem Server vom temporärem Speicherplatz zum gewünschtem) (Zeile:87) und die Dateirechte gesetzt wurden (Zeile:90) werden die Infos (die mit denen das Script arbeitet) ausgegeben (Zeile:93).
Es sollte doch zumindest aufgefallen seien, das die Datei hochgeladen wurde und existiert !? (sollte sie jedenfalls)
Achje... man sollte die Seite schon mal gelesen haben !
Außerdem ist das keine Fehlermeldung, sondern Bestandteil des Scriptes !
Nach verschieben der Datei (auf dem Server vom temporärem Speicherplatz zum gewünschtem) (Zeile:87) und die Dateirechte gesetzt wurden (Zeile:90) werden die Infos (die mit denen das Script arbeitet) ausgegeben (Zeile:93).
Es sollte doch zumindest aufgefallen seien, das die Datei hochgeladen wurde und existiert !? (sollte sie jedenfalls)
Achje... man sollte die Seite schon mal gelesen haben !