kostenloser Webspace werbefrei: lima-city


Bilder Upload ...

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    ew-community

    ew-community hat kostenlosen Webspace.

    Also ich hab hier so ein Upload-Scrip. Leider funktioniert das irgendwie nicht so ganz. Immer wenn man die Datei erfolgreich hochgeladen hat, ist irgendwie ein Fehler dort.

    Hier mal das Input-Feld:

    <form enctype="multipart/form-data" action="http://ew-community.lima-city.de/upload_data.php" method="post">
    <input type="hidden" name="step" value="2" class="input">
    <input name="file" type="file">
    <input type="submit" value="Hochladen">
    </form>

    Und hier den PHP-Script:

    <?php
    if ($step == 2) {
    $temp_name = $_FILES['file']['tmp_name'];
    $name = $_FILES['file']['name'];
    $type = $_FILES['file']['type'];
    $size = $_FILES['file']['size'];
    $pfad = "/upload/$name";
    $er_size = "100";
    
    if($type != "image/png" && $type != "image/pjpeg" && $type != "image/jpeg") {
    $err[] = "Es duerfen nur .png und .jpeg Dateien hochgeladen werden.";
    }
    
    if($size > $er_size * 1024) {
    $err[] = "Ihr Bild überschreitet die maximale Dateigrosse von $er_size KB.";
    }
    
    if(empty($err)) {
    copy("$temp_name", $pfad);
    echo "Ihr Bild wurde erfolgreich geuploadet.";
    }
    else {
    foreach($err as $error)
    echo $error."<br>";
    }
    }
    ?>


    Dann noch eine Frage, darf man sowas überhaupt bei Lima-City einsetzten?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. ew-community schrieb:
    Dann noch eine Frage, darf man sowas überhaupt bei Lima-City einsetzten?


    Man darf ein solches Script auf lima benutzen, wenn du nicht gegen die FAQ handelst. Damit meine ich, dass du nur Bild-Dateien hochladen lässt. Aber das sieht bei dir schon gut aus.

    Beim anderen Problem kann ich dir leider nicht helfen.
  4. Autor dieses Themas

    ew-community

    ew-community hat kostenlosen Webspace.

    Ok. Wo finde ich eigentlich die FAQ und ist die größe der Datein egal?

  5. Ok. Wo finde ich eigentlich die FAQ und ist die größe der Datein egal?


    Die FAQ findest du unter Hilfe: http://www.lima-city.de/2008/help
    Am besten du liest dir alles durch und dann weisst du alles, was du über lima wissen musst.

    Beitrag geändert: 30.12.2008 15:32:35 von jocko
  6. Autor dieses Themas

    ew-community

    ew-community hat kostenlosen Webspace.

    Ok danke.

    Jetzt muss mir nur noch jemand mit dem Script helfen ...
  7. Statt copy() solltest du move_uploaded_file() benutzen. Damit kannst du einerseits die Beschränkung umgehen, die auf manchen Servern bezüglich der copy()-Funktion gemacht wird. Daran liegt es wohl auch, dass dein Script nicht wie gewünscht funktioniert. Außerdem stellst du damit sicher, dass nur Dateien verschoben werden, die von php hochgeladen wurden.
    Versuch das ganze mal mit

    move_uploaded_file("$temp_name", $pfad);

    ps3web
  8. Autor dieses Themas

    ew-community

    ew-community hat kostenlosen Webspace.

    Ok hab ich eingesetzt. Könnte man aber wenn man das Bild gehostet hat irgendwie ein Feld machen wo der Code des bildes steht?
  9. Füg mal nach der Zeile echo "Ihr Bild wurde erfolgreich geuploadet."; folgendes ein:

    echo "Link: <a href=\"" . $_FILES["file"]["name"] . "\">" . $_FILES["file"]["name"] . "</a>";

    Ich weiss nicht ob es funktioniert...


    EDIT: oder vielleicht das: echo "Link: <a href=\"" . $_FILES['file']['name'] . "\">" . $_FILES['file']['name'] . "</a>";

    Beitrag geändert: 30.12.2008 18:42:36 von jocko
  10. Autor dieses Themas

    ew-community

    ew-community hat kostenlosen Webspace.

    Geht nicht :-(

    Es kommt immer diese meldung: http://ew-community.lima-city.de/img.PNG
  11. Kann man den Link anklicken?
    hast du echo "Link: <a href=\"" . $_FILES['file']['name'] . "\">" . $_FILES['file']['name'] . "</a>"; benutzt?
  12. Autor dieses Themas

    ew-community

    ew-community hat kostenlosen Webspace.

    Der Link geht aber die Datei ist irgendwie nicht vorhanden -.- Muss ich vielleicht ein speziellen Ordner oder Datei erstellen?
  13. Ich hab folgendes Script benutzt:

    normale html Datei:

    ...
    <form action="upload.php" method="post" enctype="multipart/form-data" name="upload">
    <input type="file" name="file"><input type="submit" name="submit" value="Upload">
    </form>...



    upload.php:

    <?php
    
    // Variabeln festlegen
    $max_byte_size = 2097152;
    $allowed_types = "(jpg|jpeg|gif|png)";
    
    // Formular wurde abgeschickt
    if($_POST["submit"] == "Upload") {
    
    // Wurde wirklich eine Datei hochgeladen?
    if(is_uploaded_file($_FILES["file"]["tmp_name"])) {
    
    // Gültige Endung? ($ = Am Ende des Dateinamens) (/i = Groß- Kleinschreibung nicht berücksichtigen)
    if(preg_match("/\." . $allowed_types . "$/i", $_FILES["file"]["name"])) {
    
    // Datei auch nicht zu groß
    if($_FILES["file"]["size"] <= $max_byte_size) {
    
    // Alles OK -> Datei kopieren
    if(copy($_FILES["file"]["tmp_name"], $_FILES["file"]["name"])) {
    
    echo "Datei erfolgreich hochgeladen!<br>";
    echo "Name: " . $_FILES["file"]["name"] . "<br>";
    echo "Größe: " . $_FILES["file"]["size"] . " Byte<br>";
    echo "MIME-Type: " . $_FILES["file"]["type"] . "<br>";
    echo "Link: <a href=\"" . $_FILES["file"]["name"] . "\">" . $_FILES["file"]["name"] . "</a>";
    
    
    }
    else {
    
    echo "Datei konnte nicht hochgeladen werden.";
    
    }
    
    }
    else {
    
    echo "Die Datei darf nur eine Größe von " . $max_byte_size . " Byte besitzen.";
    
    }
    
    }
    else {
    
    echo "Die Datei besitzt keine ungültige Endung.";
    
    }
    
    }
    else {
    
    echo "Keine Datei zum Hochladen angegeben.";
    
    }
    
    }
    else {
    
    echo "Bitte benutzen Sie das Upload Formular.";
    
    }
    
    ?>



    Ich weiss nicht mehr von wo ich es habe.
    Ansonsten findest du in den Tutorials auch Scripte, welche dir helfen könnten.

    Beitrag geändert: 30.12.2008 20:28:24 von jocko
  14. Hallo,

    ich habe gerade mal dein Skript durchgetestet und hier ist eine funktionierende Version. Du kannst beide Teile HTML und PHP in eine Datei laden.

    Hier der HTML-Teil. Weggelassen habe ich hierbei den Eintrag bei "ACTION", daher ruft das Skript sich direkt wieder selber auf. Sinnvoll ist hierbei auch meistens eine relative Angabe zu machen und nicht die gesamte URL anzugeben.
    <form enctype="multipart/form-data" action="" method="post">
    	<input type="hidden" name="step" value="2" class="input">
    	<input name="file" type="file">
    	<input type="submit" value="Hochladen">
    </form>


    Als nächstes der PHP-Teil. Hier habe ich ein paar mehr Änderungen gemacht.
    Zunächst habe ich die Variable $step gegen die Übergabe in $_POST ausgetauscht, da ansonsten (ohne vorherige Definition das Skript nicht ausgeführt werden würde.
    Dann habe ich die Variable $pfad geändert. Diese weißt nun, egal in welchem Ordner sich das Skript befindet, immer auf den Unterordner "upload" des Skriptspeicherortes hin. Beachte bitte, dass dieser Unterordner auch existieren muss.
    Des Weiteren habe ich move_uploaded_file verwendet und gebe hier im ersten Teil den temporären Speicherort samt Namen der Datei an und danach den neuen Pfad und Namen.
    In der Ausgabe für das erfolgreiche Hochladen der Datei, habe ich zudem einen Link zum Speicherort (Unterordner "upload" + Dateiname) angegeben, so dass man direkt das Überprüfen kann. Und weil es so schön ist, lasse ich mir das Bild auch direkt noch darunter ausgeben. ;)
    <?php
    if ($_POST['step'] == 2) {
    	$temp_name = $_FILES['file']['tmp_name'];
    	$name = $_FILES['file']['name'];
    	$type = $_FILES['file']['type'];
    	$size = $_FILES['file']['size'];
    	$pfad = dirname(__FILE__)."/upload/";
    	$er_size = "100";
    	if($type != "image/png" && $type != "image/pjpeg" && $type != "image/jpeg") {
    		$err[] = "Es duerfen nur .png und .jpeg Dateien hochgeladen werden.";
    	}
    	if($size > $er_size * 1024) {
    		$err[] = "Ihr Bild überschreitet die maximale Dateigrosse von ".$er_size." KB.";
    	}
    	if(empty($err)) {
    		move_uploaded_file($temp_name,$pfad.$name);
    		echo "Ihr Bild wurde erfolgreich geuploadet und ist nun <a href=\"upload/".$name."\" >hier</a> zu finden!<br><img src=\"upload/".$name.">";
    	} else {
    		foreach($err as $error) {
    			echo $error."<br>";
    		}
    	}
    }
    ?>


    Ich hoffe ich konnte dir bei deinem Problem weiterhelfen.

    Gruß
    Karlja

    Edit: Jocko war mit seiner Antwort wohl etwas fixer, vielleicht hilft dir meine Antwort trotzdem, dein ursprüngliches Skript und die Funktionen zu verstehen.


    Beitrag geändert: 30.12.2008 20:35:10 von karlja
  15. Autor dieses Themas

    ew-community

    ew-community hat kostenlosen Webspace.

    Danke euch beiden! :xyxthumbs: Beide Codes klappen.
  16. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!