ERLEDIGT
JA
JA
ANTWORTEN
18
18
ZUGRIFFE
878
878
EMPFEHLEN
-
Hallo Leute,
nachdem ich die Datei ausgewählt und hochgeladen habe, überprüft die Datei "upload.php", ob die Datei die Endung .gif oder .jpeg hat und ob sie kleiner als 15 KB ist. Das sollte normalerweise passieren. Tut es aber nicht! Ich frage mich warum. Hier einmal der Code:
##Die Maske##
Code :1 2 3 4 5 6 7 8 9 10 11
<html> <body> <form enctype="multipart/form-data" action="upload.php" method="post"> <input type="file" name="file"><br> <input type="submit" value="hochladen"> </form> </body> </html>
##upload.php##
Bei "upload.php" habe ich zum Testen, ob er überhaupt was ausgibt, folgendes eingefügt.PHP-Code:<?php
$tempname = $_FILES['file']['tmp_name'];
$name = $_FILES['file']['name'];
$type = $_FILES['file']['type'];
$size = $_FILES['file']['size'];
if($type != "image/gif" && $type != "image/pjpeg")
{
$err[] = "Nur gif und jpeg Dateien dürfen hochgeladen werden.";
}
if($size > "15000")
{
$err[] = "Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 15 KB!";
}
if(empty($err))
{
copy("$tempname", "$name");
echo "Die Datei $name wurde erfolgreich hochgeladen!";
}
else
{
foreach($err as $error)
echo "$error<br>";
}
?>
Er gibt aber nichts aus.PHP-Code:echo $type; //z.B., oder $size etc.
Geändert von Mammuth (01.08.04 um 21:02 Uhr)
-
Hallo hast du mal versucht das Array zu nummerieren?
Also so:
ansonsten würde ich noch vorschlagen das script so zu machen:PHP-Code:<?php
if($type != "image/gif" && $type != "image/pjpeg")
{
$err[0] = "Nur gif und jpeg Dateien dürfen hochgeladen werden.";
}
if($size > "15000")
{
$err[1] = "Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 15 KB!";
}
?>
MfG FunjoyPHP-Code:<?php
$tempname = $_FILES['file']['tmp_name'];
$name = $_FILES['file']['name'];
$type = $_FILES['file']['type'];
$size = $_FILES['file']['size'];
if($type != "image/gif" && $type != "image/pjpeg")
{
$error .= "Nur gif und jpeg Dateien dürfen hochgeladen werden.";
}
if($size > "15000")
{
$error .= "Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 15 KB!";
}
if(empty($err))
{
copy("$tempname", "$name");
echo "Die Datei $name wurde erfolgreich hochgeladen!";
}
else
{
echo "$error<br>";
}
?>Ich bin ein KLEINER Webmaster werde aber immer GRÖßER
-
Darin liegt ja nicht das Problem. Wenn ich "$type" ausgeben will, also
gibt es nichts aus. Das ist das Problem.PHP-Code:echo $type;
-
Aber die Datei wird auf jeden Fall hochgeladen?!
Evtl. mal print_r($_POST) bzw. print_r($_FILES) probieren ...
Welche PHP Version nutzt du?
@ Funjoy: Du solltest nochmal einen kurzen Blick auf das
readme zu Array's werfen
»
-
Nein, die Datei wird auch nicht hochgeladen. Wie gesagt, er gibt nichts aus. Keine Variable. Die sind leer. Ich hab deins mal ausprobiert, geht aber auch nicht.
Ich habe die PHP-Version: 4.3.4
Ich möchte später nämlich Dateien vom PC einfach über das Script hochladen können. (importieren und exportieren).
-
27.07.04 12:14 #6
Ich spekuliere mal, dass die Datei dann schon wieder aus dem temporären Ordner gelöscht wurde. Vielleicht geht es ja nachdem du move_uploaded_file benutzt hast.
MfG Radhad
-
Das versteh ich nicht ganz. Wieso sollte sie denn schon weg sein? Funktioniert der Code bei dir?
-
WEnn das Skript abgearbeitet ist, wird die hochgeladene Datei automatisch von ihrem temporäen Ort gelöscht.
gruss, thally
------------------------------------------------------------------
"Wenn du eine Webseite bauen willst, so sauge dir nicht Dreamweaver runter, sondern begreife die Lehre von HTML"
------------------------------------------------------------------
-
Ich verstehe schon was ihr meint. Das ergibt aber keinen Sinn. Passt mal auf. Wenn ich
z. B. ausgeben will, gibt er mir nicht aus.Code :1
echo $type;
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
<?php $tempname = $_FILES['file']['tmp_name']; $name = $_FILES['file']['name']; $type = $_FILES['file']['type']; $size = $_FILES['file']['size']; ////////////////////////////////////////////////////////////////////////////////////////////////////////////// echo $type; // Kann auch eine andere Variable von oben sein ////////////////////////////////////////////////////////////////////////////////////////////////////////////// if($type != "image/gif" && $type != "image/pjpeg") { $err[] = "Nur gif und jpeg Dateien dürfen hochgeladen werden."; } if($size > "15000") { $err[] = "Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 15 KB!"; } if(empty($err)) { copy("$tempname", "$name"); echo "Die Datei $name wurde erfolgreich hochgeladen!"; } else { foreach($err as $error) echo "$error<br>"; } ?>
Vielleicht könnt ihr mir mal den gefallen tun und das Script bei euch testen. Vielleicht liegt es auch nicht an dem Script, sondern am Server oder so. Wäre echt nett von euch. Danke
-
30.07.04 14:55 #10
Ich habe das Script getestet.
Zumindest wird $type bei mir ausgegeben!
snuuDas Leben ist wie eine Ketchupflasche - erst kommt nichts und dann alles auf einmal.
www.sven-petruschke.de
-
Danke. Das ist komisch. Könnte es sein, dass der Server das Hochladen auf irgendeine Weise nicht erlaubt? Wenn ja, dann ist das ziehmlich doof!
Also wenn ihr was darüber wissen solltet, dann raus damit. Ich werde mal versuchen das noch auf einen anderen Server zu testen. Nochmals danke.
-
Hi,
also ich würde das ganze an deiner Stelle mal ohne die Prüfungen testen.
# Dateiname: upload.php
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
<!-- alles was nun folgt kopieren und in die datei setzen --> <html> <body> <?php if(isset($upload)) { $verzeichnis = "../das entsprechende Verezchnis"; $name = $_FILES['file']['name']; move_uploaded_file($_FILES['file']['tmp_name'], "$verzeichnis/$name"); // Den Teil würde ich z.B. erst später einbauen wenn der erste läuft um einen // besseren Überblick über mögliche Fehler zu haben. //$type = $_FILES['file']['type']; //$size = $_FILES['file']['size']; echo "<p align=\"center\">Datei wurde hochgeladen.</p>"; } ?> <form enctype="multipart/form-data" action="upload.php?upload=" method="post"> <input type="file" name="file"><br> <input type="submit" value="hochladen"> </form> </body> </html>
Evtl. fällt dir direkt bei diesem Code auf, warum du nichts auf deinen Server bekommen hast
Noch was, wenn du den Namen in die Datenbank übernimmst, kannst du auch gleichzeitig alle anderen Infos in die DB übernehmen.
-
Ich hab das gerade mal ausprobiert. Klappt aber auch nicht. Jetzt bin ich mir fast schon sicher, dass das an dem Server liegt. Hier der Code nur modifiziert
#Datenname: upload.php
PHP-Code:<!-- alles was nun folgt kopieren und in die datei setzen -->
<html>
<body>
<?php
if(isset($upload))
{
$verzeichnis = "bilder";
$name = $_FILES['file']['name'];
if($name=="")
{
echo "Keine Datei ausgewählt!<br>";
}
else
{
$copy = move_uploaded_file($_FILES['file']['tmp_name'], "$verzeichnis/$name");
if($copy)
{
echo "Kopiert<br>";
}
else
{
echo "Nicht kopiert<br>";
}
// Den Teil würde ich z.B. erst später einbauen wenn der erste läuft um einen
// besseren Überblick über mögliche Fehler zu haben.
//$type = $_FILES['file']['type'];
//$size = $_FILES['file']['size'];
echo "<p align=\"center\">Datei wurde hochgeladen.</p>"; }
};
?>
<form enctype="multipart/form-data" action="upload.php?upload=" method="post">
<input type="file" name="file"><br> <input type="submit" value="hochladen"> </form>
</body>
</html>
-
du machst wieder einen fehler, prüf doch erst mal ob die einfache - ohne if und else und sonstigem kram - version läuft und lass dein verzeichnis weg. leg die uploaddatei in das verzeichnis in welches du die bilder haben willst.
einfach mal machen. wenn es dann nicht geht, liegt es an der php-einstellung des providers. andererseits kannst du das auch rausfinden mit einer datei und folgendem inhalt:
unter php core muss der eintrag file_uploads auf on eingestellt sein. dann auch obiger code.PHP-Code:<?php
phpinfo();
?>
teste noch mal ohne den if und else faktor und nimm den vorgegebenen code.
-
Ich hatte es vorher ja auch ohne gemacht und jetzt wieder. Es geht einfach nicht. Hab mal nachgeguckt. Ich glaube, dass es laut der Infos hier nicht geht.
Local Value---------Master Value
---------Off ----------------------On-----------
bei file_uploads.
Ähnliche Themen
-
Problem bei der Übergabe von variablen
Von spikaner im Forum PHPAntworten: 4Letzter Beitrag: 31.08.07, 19:51 -
C#: Problem mit Sonderzeichen aus GET Übergabe
Von Knuessel im Forum .NET Web und KommunikationAntworten: 2Letzter Beitrag: 23.08.06, 20:02 -
php übergabe problem
Von MechanU im Forum PHPAntworten: 3Letzter Beitrag: 08.08.05, 11:59 -
Problem mit variablen übergabe
Von grimoh im Forum PHPAntworten: 1Letzter Beitrag: 11.05.05, 18:14 -
Problem mit Variablen-Übergabe in der URL
Von mouCe im Forum PHPAntworten: 4Letzter Beitrag: 18.11.04, 17:03





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren