Sebastian: Datei-Upload

Hallo,

wie geht's? ich will einen datei-upload miteinbauen, wie funktioniert das, kann mir jemand beispiele geben?

danke

  1. Hallo Sebastian,

    wie geht's?

    muss ja. ;-)

    ich will einen datei-upload miteinbauen, wie funktioniert das, kann mir jemand beispiele geben?

    schau doch mal bei selfhtml nach. HTML allein wird da jedoch nicht reichen.

    Mit freundlichen Grüßen

    André

    --
    [link:http://forum.de.selfhtml.org/archiv/2003/10/60651/
    1. Hallo Sebastian,

      wie geht's?

      muss ja. ;-)

      ich will einen datei-upload miteinbauen, wie funktioniert das, kann mir jemand beispiele geben?

      schau doch mal bei selfhtml nach. HTML allein wird da jedoch nicht reichen.

      Mit freundlichen Grüßen

      André

      hi andre,

      also ich hab mir das mal angeschaut und bissl rumprobiert, doch so richtig klappt das alles nicht. ich stell mir das so vor, wie wenn man auf so einer partner-such-seite sein photo aussuchen und hochladen kann. da das in zukunft eine secure-html wird, sind die sicherheitsaspekte nicht so wichtig, vorerst, ich will halt einfach bloß ein document auf nem andren rechner dann über meine hp auf meinen server laden.

      1. Hallo,

        du brauchst die Möglichkeit, Daten auf einem Server nach dem hochladen zu speichern. Dies geschieht vielfach mittels PHP, ein entsprechender Webspace vorausgesetzt.

        Skripte gibt es wie Sand am Meer, Google hilft da weiter. Ein Blick lohnt auch auf www.mylittlehomepage.net

        André

        1. so,

          ich hab mir die seite mal angeschaut und da war auch was schönes dabei :-) so weit so gut klappt das auch. ich ruf nach dem auswählen eines doc.s mit dem button upload einen von mir ausgewählten pfad aus, in den  ich das doc. eigentlich speichern will, jedoch öffnet der mir bloß den ordner aber mehr auch nicht. kein speichern oder schreiben in den ordner. die rechte dazu sind schon vorhanden...wie befehle ich: (z.b.) speichern unter?

          1. Hallo,

            ...jedoch öffnet der mir bloß den ordner aber mehr auch nicht. kein speichern oder schreiben in den ordner. die rechte dazu sind schon vorhanden...wie befehle ich: (z.b.) speichern unter?

            du testest die ganze Sache natürlich in einer Serverumgebung?!

            Mit freundlichen Grüßen

            André

            1. natürlich mach ich das,

              der server wartet nur darauf das ich komme.
              nee mal im ernst, ich hab das nochmal getestet. der öffnet mit betätigung des upload-button wirklich nur den ordner wo es eigentlich hingespeichert werden soll. wie sag ich "dem" das er speichern soll und nicht öffnen?

            2. damit blicke ich nicht durch: als test soll der das eben in den ordner: ord auf meinem desktop erstmal erstellen, was ich dann parallel natürlich mit dem ordner auf dem server machen will.

              <?php
              // Einstellungen:
                // Verzeichnis, in das die Dateien hochgeladen werden;
                // muss vorhanden sein und benötigt Schreiberechte (CHMOD 777):
              $upload_dir = "uploaded_files";
                // maximale Dateigröße in KB:
              $max_file_size = 200;
                // maximale Größe bei Bildern:
              $max_image_width = 1024;
              $max_image_height = 768;
                // Datei-Typen:
              $accepted_file_types = array('image/jpeg','image/pjpeg','image/gif','image/png','text/plain','text/html');
                // Datei-Endungen:
              $accepted_file_extensiones = array('jpg','jpeg','gif','png','txt','html','htm');

              // Sprache:
              $lang['title']                  = 'Datei hochladen';
              $lang['upload_subm_button']     = 'OK - Hochladen';
              $lang['error_headline']         = 'Fehler:';
              $lang['invalid_file_type']      = 'ungültiges Dateiformat ([file_type])';
              $lang['invalid_file_extension'] = 'ungültige Datei-Erweiterung ([file_extension])';
              $lang['file_too_large']         = 'Datei zu groß ([size] KB)';
              $lang['image_too_large']        = 'Bild zu groß ([width] x [height])';
              $lang['file_already_exists']    = 'die Datei <b>[file]</b> existiert bereits';
              $lang['upload_successful']      = 'Die Datei [file] wurde erfolgreich hochgeladen!';
              $lang['upload_not_successful']  = '<b>Fehler:</b> Die Datei [file] konnte nicht gespeichert werden!';
              $lang['load_up_another_file']   = "eine weitere Datei hochladen...";

              ?><html>
              <head>
              <title><?php echo $lang['title']; ?></title>
              <style type="text/css">
              <!--
              body                { font-family: Verdana,Arial,Helvetica,sans-serif; color: #000000; font-size:13px; background-color: #fffff3; margin: 0px; padding: 20px; }
              h1                  { margin: 0px 0px 20px 0px; font-size:18px; font-weight:bold; }
              .caution            { color: red; font-weight: bold; }
              .small              { font-size: 11px; }
              -->
              </style>
              </head>
              <body>
              <h1><?php echo $lang['title']; ?></h1>
              <?php
               if (isset($_FILES['probe']) && $_FILES['probe']['size'] != 0 && !$_FILES['probe']['error'])
                {
                 unset($errors);
                 // file type ok?
                 if (!in_array($_FILES['probe']['type'], $accepted_file_types)) $errors[] = str_replace("[file_type]",$_FILES['probe']['type'],$lang['invalid_file_type']);
                 // extension ok?
                 $exts = explode(".", basename($_FILES['probe']['name']));
                 $file_extension = strtolower($exts[sizeof($exts)-1]);
                 if (!in_array($file_extension, $accepted_file_extensiones)) $errors[] = str_replace("[file_extension]",$file_extension,$lang['invalid_file_extension']);
                 // file size ok?
                 if ($_FILES['probe']['size'] > $max_file_size*1000) $errors[] = str_replace("[size]",number_format($_FILES['probe']['size']/1000,0,",",""),$lang['file_too_large']);
                 // if it's an image, image size ok?
                 if (in_array($_FILES['probe']['type'], $accepted_file_types) && in_array($_FILES['probe']['type'],array('image/jpeg','image/pjpeg','image/gif','image/png','image/bmp')))
                  {
                   $image_info = getimagesize($_FILES['probe']['tmp_name']);
                   if ($image_info[0] > $max_image_width || $image_info[1] > $max_image_width) { $lang['image_too_large'] = str_replace("[width]",$image_info[0],$lang['image_too_large']); $errors[] = str_replace("[height]",$image_info[1],$lang['image_too_large']); }
                  }
                 // filename already exists?
                 if (file_exists($upload_dir."/".basename($_FILES['probe']['name']))) $errors[] = str_replace('[file]',$_FILES['probe']['name'],$lang['file_already_exists']);

              // if everything is ok load up the file:
                 if (empty($errors))
                  {
                   if (move_uploaded_file($_FILES['probe']['tmp_name'], $upload_dir.'/'.basename($_FILES['probe']['name'])))
                    {
                     chmod($upload_dir.'/'.$_FILES['probe']['name'], 0644);
                     ?><p><?php echo str_replace('[file]', '<a href='.$upload_dir.'/'.$_FILES['probe']['name'].'>'.$_FILES['probe']['name'].'</a>',$lang['upload_successful']); ?></p>
                     <p class="small"><a href="C:\Dokumente und Einstellungen\sb\Desktop\ord"><?php echo $lang['load_up_another_file']; ?></a></p><?php
                    }
                   else
                    {
                     ?><p><?php echo str_replace('[file]', $_FILES['probe']['name'],$lang['upload_not_successful']); ?></p><?php
                    }
                  }
                 // ...else show what's wrong:
                 else
                  {
                   ?><p class="caution"><?php echo $lang['error_headline']; ?></p><ul><?php foreach($errors as $f) { ?><li><?php echo $f; ?></li><?php } ?></ul><br /><?php
                  }
                }

              // show the upload form:
              if (empty($_FILES['probe']) || $_FILES['probe']['size'] == 0 || isset($errors))
               {
               ?>
               <form action="C:\Dokumente und Einstellungen\sb\Desktop\ord" method="post" enctype="multipart/form-data">
               <input type="file" name="probe" /><br><br>
               <input type="submit" name="submit-button" value="C:\Dokumente und Einstellungen\sb\Desktop\ord['upload_subm_button']; ?>">
               </form>
               <?php
               }
              ?>
              </body>
              </html>

              1. Hallo,

                damit blicke ich nicht durch: als test soll der das eben in den ordner: ord auf meinem desktop erstmal erstellen

                hast du einen Desktop auf deinem virtuellen Server? Ich glaube du verwechselst da was. Ich meine nicht Windows sondern einen installierten Webserver (Apache etc.), mit dessen Hilfe man sich sog. "Virtuelle Hosts" einrichten kann und dann Serverumgebungen lokal auf dem heimischen PS zu testen.

                Mit freundlichen Grüßen

                André

                1. ja einen server hab ich doch. das mit dem test-upload auf meinem pc lassen wir eben weg - problem ist, das der befehl "speichern" nicht ausgeführt wird

                  1. Hi

                    problem ist, das der befehl "speichern" nicht ausgeführt wird

                    Hat das Script Schreibrechte für den entsprechenden Ordner?

                    so long
                    Ole
                    (8-)>

                    --
                    Des Mannes Auto ist seine Burg.
                    Normalerweise ist ja des Mannes Haus seine Burg, aber nur wenn er den Drachen erschlagen kann, der darin wohnt.
                    1. keine ahnung,

                      hmm das könnte es wohl sein, wo stell ich das ein?

                      merci

                      1. Hallo,

                        hmm das könnte es wohl sein, wo stell ich das ein?

                        in den FTP-Programmen gibt es i.d.R. die Möglichkeit chmod zu setzen/ zu verändern. Bei SmartFTP z.B. über die rechte Maustaste in Verbindung mit der Datei.

                        Mit freundlichen Grüßen

                        André

                      2. hi

                        hmm das könnte es wohl sein, wo stell ich das ein?

                        Welches Betriebssystem und welche Serversoftware nutzt du?

                        so long
                        Ole
                        (8-)>

                        --
                        Des Mannes Auto ist seine Burg.
                        Normalerweise ist ja des Mannes Haus seine Burg, aber nur wenn er den Drachen erschlagen kann, der darin wohnt.
                        1. oh mann,

                          ich geb das bald auf, ohne eure hilfe hätte ich das schone lange hingeworfen, aber so richtig kommt das alles nicht rüber. ich nutze win2000, das hat doch aber nichts damit zu tun. ich will nen http-upload machen. von meiner seite aus dateien in den ordner eines servers laden, der soweit die rechte besitzt daß ich schreibzugriff habe.

                          1. Hi

                            ich nutze win2000, das hat doch aber nichts damit zu tun.

                            Nicht was du nutzt, sondern der Server und welche Serversoftware ist in diesem Falle interessant, da auf unterschiedlichen Systemen die Rechte unterschiedlich gesetzt werden.

                            der soweit die rechte besitzt daß ich schreibzugriff habe.

                            Ok, du hast auf den Ordner schreibrehct, aber wie sieht es mit den rechten für das Script aus? Darf das script schreiben auf den Ordner zugreifen?

                            Ich vermute mal, dass du keinen root-server oder vergleichbares nutzt, sondern ein Paket eines Hosters?!

                            so long
                            Ole
                            (8-)>

                            --
                            Des Mannes Auto ist seine Burg.
                            Normalerweise ist ja des Mannes Haus seine Burg, aber nur wenn er den Drachen erschlagen kann, der darin wohnt.
                      3. und PHP kann ich noch nicht

                        1. Hi

                          und PHP kann ich noch nicht

                          Dann solltest du, wenn du es benutzen möchtest, vieleicht mal darüber nachdenken es zu lernen.

                          so long
                          Ole
                          (8-)>

                          --
                          Des Mannes Auto ist seine Burg.
                          Normalerweise ist ja des Mannes Haus seine Burg, aber nur wenn er den Drachen erschlagen kann, der darin wohnt.
  2. hi

    du brauchst

    1. ein Formular welches eine input-feld von type file hat, einen submitbutton und einen enctpye mit wert multipart/form-data hat.

    2. benötigst du eine serverseitige technologie die die vom formular vershcickte datei annimmt und dahin speicher wo du sie haben möchtest.

    das wars schon, allerding ist da mit HTML nur die optik zu machen.

    so long
    ole
    (8-)>

    --
    Des Mannes Auto ist seine Burg.
    Normalerweise ist ja des Mannes Haus seine Burg, aber nur wenn er den Drachen erschlagen kann, der darin wohnt.