You are not logged in.

  • Login
Bitte besucht unser neues Forum unter https://forum.nitrado.net | Please visit our new Forum at https://forum.nitrado.net

Dear visitor, welcome to Nitrado.net Prepaid Gameserver Community-Support - Archiv. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

Nik99

User / Kunde

  • "Nik99" is male
  • "Nik99" started this thread

Posts: 173

Occupation: Schüler

Thanks: 3

  • Send private message

1

Tuesday, August 7th 2018, 7:07pm

Bilder hochladen via HTML Formular und PHP Skript funktioniert nicht (XAMPP)

Hallo,

ich möchte gerne eine Bild Datei über ein HTML Formular hochladen, dies gibt seine Daten an ein PHP Skript weiter, leider wird meine Datei jedoch nicht hochgeladen, es scheitert an der move_uploaded_file Funktion, die eine Fehlermeldung zurück gibt wenn sie nicht funktioniert hat, siehe Skript. DIe Funktionen davor habe ich bereits getestet, sie funktionieren so wie sie sollen. Ich hoste meinen Server aktuell zum testen mit XAMPP. Die Ordner auf die ich zugreifen möchte existieren, die Pfäde stimmen.

Source code

1
2
3
4
<form action="bildupload.php" method="post" enctype="multipart/form-data">
<input type="file" name="datei"><br>
<input type="submit" value="Hochladen">
</form>

PHP Source code

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
<?php

$upload_ordner 'upload/bilder/';
$filename pathinfo($_FILES['datei']['name'], PATHINFO_FILENAME);
$extension strtolower(pathinfo($_FILES['datei']['name'], PATHINFO_EXTENSION));
 
 
//Überprüfung der Dateiendung
$allowed_extensions = array('png''jpg''jpeg');
if(!in_array($extension$allowed_extensions)) {
 die("Ungültige Dateiendung. Nur png, jpg, jpeg und gif-Dateien sind erlaubt");
}

//Überprüfung der Dateigröße
$max_size 10000*1024//10 MB
if($_FILES['datei']['size'] > $max_size) {
 die("Bitte keine Dateien größer 10Mb hochladen");
}

//Pfad zum Upload
$new_path $upload_ordner.$filename.'.'.$extension;
 
//Neuer Dateiname falls die Datei bereits existiert
if(file_exists($new_path)) { //Falls Datei existiert, hänge eine Zahl an den Dateinamen
 $id 1;
 do {
 $new_path $upload_ordner.$filename.'_'.$id.'.'.$extension;
 $id++;
 } while(file_exists($new_path));
}
 
//Alles okay, verschiebe Datei an neuen Pfad
if(move_uploaded_file($_FILES['datei']['tmp_name'], $new_path)) {
echo 'Bild erfolgreich hochgeladen: <a href="'.$new_path.'">'.$new_path.'</a>';

} else {
echo 'Fehler    ';    
echo $new_path;
}


?>

DIeses leicht abgewandelte Beispiels stammt von: https://www.php-einfach.de/php-tutorial/dateiupload/
Benötigt ihr Support? Dann sendet mir einfach eine PN und ich versuche euch so gut wie möglich zu helfen. :) .

EuroCent

User / Kunde

  • "EuroCent" is male

Posts: 376

Location: Thüringen

Occupation: Vodafone Mitarbeiter

  • Send private message

2

Tuesday, August 7th 2018, 11:46pm

Kannst Du mir mal die Fehlermeldung Posten?

Nik99

User / Kunde

  • "Nik99" is male
  • "Nik99" started this thread

Posts: 173

Occupation: Schüler

Thanks: 3

  • Send private message

3

Wednesday, August 8th 2018, 12:42am

Kannst Du mir mal die Fehlermeldung Posten?

Ich bekomme keine angezeigt, oder ich weiß nicht wo sie angezeigt wird ?(

Ich bekam halt nur die 404 Seite wenn ich auf das nicht vorhandene Bild zugreifen wollte. Nun weiß ich nur, dass die move_uploaded_file false zurückgibt, deshalb erscheint dann nur meine Fehlermeldung:
"echo 'Fehler '; echo $new_path;"
Benötigt ihr Support? Dann sendet mir einfach eine PN und ich versuche euch so gut wie möglich zu helfen. :) .

EuroCent

User / Kunde

  • "EuroCent" is male

Posts: 376

Location: Thüringen

Occupation: Vodafone Mitarbeiter

  • Send private message

4

Wednesday, August 8th 2018, 1:13am

Füge mal am anfang deiner PHP Seite das hier ein:

error_reporting(E_ALL);

Ohne eine Fehlermeldung ist es schwer dir eine Hilfestellung zu geben :)

Ich hatte auch mal einen File-Uploader erstellt, müsste mal schauen wo Ich den noch habe :D

Nik99

User / Kunde

  • "Nik99" is male
  • "Nik99" started this thread

Posts: 173

Occupation: Schüler

Thanks: 3

  • Send private message

5

Wednesday, August 8th 2018, 2:39pm

Füge mal am anfang deiner PHP Seite das hier ein:

error_reporting(E_ALL);

Ohne eine Fehlermeldung ist es schwer dir eine Hilfestellung zu geben :)

Ich hatte auch mal einen File-Uploader erstellt, müsste mal schauen wo Ich den noch habe :D
Habe ich hinzugefügt, trotzdem wird mir keine Fehlermeldung angezeigt. Ich bin leider ein absoluter PHP und HTML Neuling, deswegen weiß ich nicht woran das liegt, sorry.
Benötigt ihr Support? Dann sendet mir einfach eine PN und ich versuche euch so gut wie möglich zu helfen. :) .

EuroCent

User / Kunde

  • "EuroCent" is male

Posts: 376

Location: Thüringen

Occupation: Vodafone Mitarbeiter

  • Send private message

6

Wednesday, August 8th 2018, 8:32pm

Lass dir mal per printf(‚<pre>%s</pre>‘, print_r($new_path, true));

Nik99

User / Kunde

  • "Nik99" is male
  • "Nik99" started this thread

Posts: 173

Occupation: Schüler

Thanks: 3

  • Send private message

7

Wednesday, August 8th 2018, 10:41pm

Lass dir mal per printf(‚%s
‘, print_r($new_path, true));

Wenn ich das einfüge kommt nur:
Parse error: syntax error, unexpected '>' in C:\xampp\htdocs\Test\bildupload.php on line 42
Benötigt ihr Support? Dann sendet mir einfach eine PN und ich versuche euch so gut wie möglich zu helfen. :) .

EuroCent

User / Kunde

  • "EuroCent" is male

Posts: 376

Location: Thüringen

Occupation: Vodafone Mitarbeiter

  • Send private message

8

Thursday, August 9th 2018, 9:17am

Lass dir mal per printf(‚%s
‘, print_r($new_path, true));

Wenn ich das einfüge kommt nur:
Parse error: syntax error, unexpected '>' in C:\xampp\htdocs\Test\bildupload.php on line 42


Hatte es per Handy versendet ^^

Hier nochmal der richtige:

PHP Source code

1
printf('<pre>%s</pre>'print_r($new_pathtrue));


oder auch

PHP Source code

1
printf('<pre>%s</pre>'print_r($_POSTtrue));


oder aber:

PHP Source code

1
printf('<pre>%s</pre>'print_r($_FILEStrue));


Du musst Prüfen, ob der Fehler per POST, FILEs oder deinem new_path kommt :)

Nik99

User / Kunde

  • "Nik99" is male
  • "Nik99" started this thread

Posts: 173

Occupation: Schüler

Thanks: 3

  • Send private message

9

Thursday, August 9th 2018, 12:56pm

Danke, jetzt hat es mit der Fehlermeldung geklappt.

Es erscheint:upload/bilder/20170325_060456.jpg
Array
(
)

Array
(
[datei] => Array
(
[name] => 20170325_060456.jpg
[type] =>
[tmp_name] =>
[error] => 1
[size] => 0
)


)
tmp_name und type scheinen leer zu sein, weißt du woran das liegen könnte?
Benötigt ihr Support? Dann sendet mir einfach eine PN und ich versuche euch so gut wie möglich zu helfen. :) .

EuroCent

User / Kunde

  • "EuroCent" is male

Posts: 376

Location: Thüringen

Occupation: Vodafone Mitarbeiter

  • Send private message

10

Thursday, August 9th 2018, 5:12pm

@Nik99
Ich teste es mal bei Mir.

Dann stimmt was mit dem Script nicht ^^

Nik99

User / Kunde

  • "Nik99" is male
  • "Nik99" started this thread

Posts: 173

Occupation: Schüler

Thanks: 3

  • Send private message

11

Thursday, August 9th 2018, 11:06pm

@Nik99
Ich teste es mal bei Mir.

Dann stimmt was mit dem Script nicht ^^


Vielen Dank!
Benötigt ihr Support? Dann sendet mir einfach eine PN und ich versuche euch so gut wie möglich zu helfen. :) .

EuroCent

User / Kunde

  • "EuroCent" is male

Posts: 376

Location: Thüringen

Occupation: Vodafone Mitarbeiter

  • Send private message

12

Saturday, August 11th 2018, 11:29am

So hab es bei mir getestet: https://testing.gamenetworx.de/

Und da funktioniert es :)

Hier meine index.php
Einzige Änderung ist, dass Ich die action vom Form leer gelassen habe :)

PHP Source code

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
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="datei"><br>
<input type="submit" name="send" value="Hochladen">
</form>

<?php

if(isset($_POST['send'])) {
    $upload_ordner 'upload/bilder/';
    $filename pathinfo($_FILES['datei']['name'], PATHINFO_FILENAME);
    $extension strtolower(pathinfo($_FILES['datei']['name'], PATHINFO_EXTENSION));
     
     
    //Überprüfung der Dateiendung
    $allowed_extensions = array('png''jpg''jpeg');
    if(!in_array($extension$allowed_extensions)) {
        die("Ungültige Dateiendung. Nur png, jpg, jpeg und gif-Dateien sind erlaubt");
    }

    //Überprüfung der Dateigröße
    $max_size 10000*1024//10 MB
    if($_FILES['datei']['size'] > $max_size) {
        die("Bitte keine Dateien größer 10Mb hochladen");
    }

    //Pfad zum Upload
    $new_path $upload_ordner.$filename.'.'.$extension;
     
    //Neuer Dateiname falls die Datei bereits existiert
    if(file_exists($new_path)) { //Falls Datei existiert, hänge eine Zahl an den Dateinamen
        $id 1;
        do {
            $new_path $upload_ordner.$filename.'_'.$id.'.'.$extension;
            $id++;
        }
        while(file_exists($new_path));
    }
     
    //Alles okay, verschiebe Datei an neuen Pfad
    if(move_uploaded_file($_FILES['datei']['tmp_name'], $new_path)) {
        echo 'Bild erfolgreich hochgeladen: <a href="'.$new_path.'">'.$new_path.'</a>';
    } else {
        echo 'Fehler    ';    
        echo $new_path;
    }
}
?>

Nik99

User / Kunde

  • "Nik99" is male
  • "Nik99" started this thread

Posts: 173

Occupation: Schüler

Thanks: 3

  • Send private message

13

Saturday, August 11th 2018, 11:54pm

MMh, interessant. Ich habe dein minimal verändertes Skript eins zu eins kopiert und in einen leeren Testordner inklusive leerem Bilder Ordner eingefügt. Trotzdem geht es nicht :( Eigentlich wollte ich erst einen Webspace hier mieten wenn es lokal läuft, aber ich glaube, dass es lokal irgendwie nicht will :D . Ich werde dann in nächster Zeit mal ein kleines Webspace mieten und mal gucken ob es dann läuft. Interessant das es lokal nicht läuft, ich hoffe, dass es dann wenigstens auf dem Webspace läuft :D Ich werde mich dann nach dem Test nochmal melden, vielen Dank schonmal für deine Hilfe bisher! :thumbup:
Benötigt ihr Support? Dann sendet mir einfach eine PN und ich versuche euch so gut wie möglich zu helfen. :) .

EuroCent

User / Kunde

  • "EuroCent" is male

Posts: 376

Location: Thüringen

Occupation: Vodafone Mitarbeiter

  • Send private message

14

Sunday, August 12th 2018, 7:10pm

Hast du mal geprüft ob dein Hoster es überhaupt zulässt? :)

Nik99

User / Kunde

  • "Nik99" is male
  • "Nik99" started this thread

Posts: 173

Occupation: Schüler

Thanks: 3

  • Send private message

15

Sunday, August 12th 2018, 9:41pm

Lösung des Problems:

In der php.ini Datei war eine Größenbeschränkung von 2 MB für Dateien alelr Art eingestellt. Nachdem ich diese auf 10 MB gestellt habe hat es funktioniert.

Danke an EuroCent!
Benötigt ihr Support? Dann sendet mir einfach eine PN und ich versuche euch so gut wie möglich zu helfen. :) .

EuroCent

User / Kunde

  • "EuroCent" is male

Posts: 376

Location: Thüringen

Occupation: Vodafone Mitarbeiter

  • Send private message

16

Sunday, August 12th 2018, 11:25pm

Bitte Bitte :)

Freut mich dass Ich dir via TV helfen konnte :)

Bitte besucht unser neues Forum unter https://forum.nitrado.net| Please visit our new Forum at https://forum.nitrado.net