1Danke
ERLEDIGT
NEIN
NEIN
ANTWORTEN
9
9
ZUGRIFFE
494
494
EMPFEHLEN
-
Hallo zusammen!
Nach Serverumzug will mein Dateiupload nicht mehr...
Auf anderen Servern funktioniert das Script nach wie vor wunderbar. Muss also eigentlich an einem Befehl liegen, der in einer neueren PHP-Version nicht mehr unterstützt wird? Sonst fällt mir nichts mehr ein...
Hier nur das wesentliche:
Ich bin mir auch gar nicht sicher ob es an obigem Script liegt, oder am Formular vorher.PHP-Code:$file = $_FILES['file']['name'];
$filetype = $_FILES['file']['type'];
$filetmp = $_FILES['file']['tmp_name'];
$filename = $objekt . ".jpg";
$updir = "objekte/";
move_uploaded_file($filetmp, $updir.$filename);
if (filesize($updir.$filename)<1) die ('Sie haben versucht eine leerer Datei hochzuladen!');
Problem ist nämlich, dass bei method=post die Eingaben irgendwie nicht übergeben werden - so mein Eindruck. Ich bekomme nach "absenden" das Formular erneut angezeigt, aber leer (auch bei reinen Text-Formularen ohne Dateiupload). Lasse ich method=post weg funktioniert es zumindest bei Text-Formularen.PHP-Code:<form method="post" action="<? $PHP_SELF ?>" enctype="multipart/form-data">
<input type="file" name="file">
</form>
Ich hoffe man versteht was ich meine....
Hat jemand eine Idee? Bin langsam mit meinem Latein am Ende...
Danke!
-
21.11.11 22:55 #2
- Registriert seit
- Mar 2009
- Beiträge
- 171
Was sagt denn :
echo "<pre>". print_r($_POST, true) ."</pre>"; und error_reporting(E_ALL);
-
Kommt irgendwas, wenn du
an den Anfang des Scripts setzt?PHP-Code:ini_set('display_errors', 1);
error_reporting(E_ALL);
ich nehme an, der Submitbutton fehlt jetzt nur im Beispiel?
Wie sieht es mit den Zugriffsrechten des Uploadsordners aus? $objekt besitzt einen Inhalt?Für die Übereinstimmung von Niederschrift und Hirninhalt.
-
Und was sagt
nach dem Abschicken?PHP-Code:echo "<pre>". print_r($_FILES, true) ."</pre>"; und error_reporting(E_ALL);
-
Zugriffsrechte sind vorhanden, Submitbutton ist natürlich ebenso vorhanden und das Zielverzeichnis ist natürlich auch vorhanden.
Ich schätze wie gesagt das Problem liegt entweder an einem Befehl, der in der PHP-Version auf dem neuen Server nicht unterstützt wird ODER im Upload der Datei an sich. Wenn ich im HTML-Formular "method=post" drin habe kommt bei der Verarbeitung der hochgeladenen Datei der Hinweis "leere Datei hochgeladen". Bei reinen Text-Formularen wurden auch keine Formular-Inhalte übertragen, daraufhin habe ich dort das post weggelassen und es funktionierte...
Eure obigen Hinweise bringen folgende Fehler an den Bildschirm:
Notice: Undefined index: file in ***.php on line 314
Datei:
Notice: Undefined index: file in ***.php on line 316
Type:
Notice: Undefined index: file in ***.php on line 318
tmp:
Dateiname neu:113.jpg
[[Das sind die ersten Zeilen in meinem Script ganz oben]]
Warning: filesize() [function.filesize]: stat failed for objekte/113.jpg in ***.php on line 347
Sie haben versucht eine leerer Datei hochzuladen!
-
Checke mal die PHP-Einstellung variables_order .
Wenn PHP keine $_POST-Variablen erzeugt könnte es an dieser Einstellung liegen, der Wert muss ein String sein der ein P enthält(Standard ist EGPCS) . Kein P , keine $_POST-Variablen(einschliesslich $_FILES)
Code :1
echo ini_get('variables_order');Geändert von wollmaus (22.11.11 um 02:54 Uhr)
-
23.11.11 00:14 #7
Hallo!
Kann man sehen wie man will.
Zumindest geht aus dem Code nicht hervor ob Du überhaupt prüfst dass das Formular abgeschickt wurde und ob die Input-Felder gefüllt sind.
Du solltest prüfen ob move_uploaded_file() auch erfolgreich gewesen ist, denn wenn safe_mode aktiviert ist könnte selbiges Dir einen Strich durch die Rechnung machen.
Dir ist aber schon klar dass ein Bild min. einen Header hat?
Es kann also garnicht kleiner als 1 Byte sein.
Sinnvoller wäre es zu prüfen ob es dem von Dir gewünschtem Mime-Type enspricht (für .jpg ist es, je nach verwendetem Browser, entweder image/jpeg oder image/pjpeg).
Wenn ja, dann hat es natürlich auch über 0 Byte.
Hast Du die Variable "$PHP_SELF" auch irgendwo definiert?
Und was soll mit dieser Variable passieren?
Soll sie zufälligerweise das action-Attribut füllen? Dann solltest Du es dem Script auch mitteilen, z.b. mit einem "echo".
Ausserdem funktioniert "<?" nur wenn in der php.ini "short_open_tag" aktiviert ist.
Nutze statt dessen lieber "<?php", denn dieses funktioniert unabhängig davon was für short_open_tag in der php.ini eingestellt ist.
Entweder findet erst garkeine Prüfung des Formulars (s.o.) statt und/oder das Formular kommt nicht bzw. nicht wie gewünscht an.
Gruss Dr DauSchri-Schra-Schrödi *g*
mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
Dinge, die mit Tabellen besser klappen als mit CSS
Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
Meine Links zum Thema Linux (Last update: 29.10.2011)
Kein Busen ist so flach wie das Niveau dieser Party!
----
Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
----
Ich habe 3 Kinder und kein Geld!
Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)
-
-
Hi!
korrekt, habe ich weggelassen da es in diesem Zusammenhang nicht benötigt wird...
Gutes Argument, das werde ich umbauen.Dir ist aber schon klar dass ein Bild min. einen Header hat?
Es kann also garnicht kleiner als 1 Byte sein.
Sinnvoller wäre es zu prüfen ob es dem von Dir gewünschtem Mime-Type enspricht (für .jpg ist es, je nach verwendetem Browser, entweder image/jpeg oder image/pjpeg).
Wenn ja, dann hat es natürlich auch über 0 Byte.
jo - sag ich ja. Ich habe jetzt zum Test vor dem move_uploaded_file noch eine echo Ausgabe der Variablen $_FILES angelegt, die Variablen bleiben dabei leer. Also kommt nach dem Absenden des Formulars keine Datei an die weiterverarbeitet werden könnte, nur warum!?Entweder findet erst garkeine Prüfung des Formulars (s.o.) statt und/oder das Formular kommt nicht bzw. nicht wie gewünscht an.
-
29.11.11 09:06 #10
Lege mal eine neue Datei mit folgendem Inhalt an und schaue was passiert:
[edit]PHP-Code:<?php
ini_set("display_errors", "on");
error_reporting(E_ALL);
if(isset($_POST["submitbutton"])) {
echo "<pre>";
var_dump($_POST);
var_dump($_FILES);
echo "</pre>";
}
?>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"] ?>" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" name="submitbutton" value="abschicken...">
</form>
Und nehme zum testen nur eine ganz kleine Datei.
Z.b. eine Textdatei mit einem einzigen Wort als Inhalt.
[/edit]Geändert von Dr Dau (29.11.11 um 09:13 Uhr)
Schri-Schra-Schrödi *g*
mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
Dinge, die mit Tabellen besser klappen als mit CSS
Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
Meine Links zum Thema Linux (Last update: 29.10.2011)
Kein Busen ist so flach wie das Niveau dieser Party!
----
Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
----
Ich habe 3 Kinder und kein Geld!
Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)
Ähnliche Themen
-
spectrum und xml in As3 ****t nach upload nicht mehr !!
Von Webesek im Forum Flash PlattformAntworten: 3Letzter Beitrag: 18.10.11, 00:15 -
Datei-Upload geht nicht mehr
Von medico im Forum PHPAntworten: 9Letzter Beitrag: 28.01.07, 13:37 -
PHP Upload funktioniert nicht mehr?!
Von bgshackenberg im Forum PHPAntworten: 5Letzter Beitrag: 27.10.06, 17:05 -
PHP upload *.jpg wird in htm nicht mehr angezeigt
Von Ulli Martel im Forum PHPAntworten: 5Letzter Beitrag: 12.02.05, 11:27 -
Bild Upload klappte mal, nun nicht mehr ?!
Von Eiszwerg im Forum PHPAntworten: 1Letzter Beitrag: 05.11.04, 20:57





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren