Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Datei-Upload über http - PHP wie? (https://www.delphipraxis.net/84908-datei-upload-ueber-http-php-wie.html)

ManuMF 23. Jan 2007 14:58


Datei-Upload über http - PHP wie?
 
Hallo,
ich möchte eine Datei mit meinem Delphi-Programm per http hochladen. Dazu nutze ich den Code aus der CodeLib, das stellt auch kein Problem dar.
Aber wie muss ich eine php-Datei aufbauen, die die Datei entgegennimmt? Vorher wird noch geprüft, ob eine Variable $_POST['ChkSum'] != 'BestimmterWert' ist, wenn nicht, soll der Upload verweigert werden. Andernfalls kann die Datei unter dem Originalnamen abgelegt werden, der auch mitgesendet wird.
Ich habe schon gesucht, konnte aber mit den Beispielen hier nicht so recht etwas anfangen (unter anderem, weil es meistens Fragen zu Fehlern dabei und ohne Lösung waren).

Kennt Jemand ein paar Funktionen dafür?

Danke,
ManuMF

mkinzler 23. Jan 2007 14:59

Re: Datei-Upload über http - PHP wie?
 
Was hast du schon?

ManuMF 23. Jan 2007 15:02

Re: Datei-Upload über http - PHP wie?
 
In PHP habe ich leider nur Grundkenntnisse. Die Abfrage ist natürlich leicht, aber mir fehlt, wie ich die hochgeladene Datei speichere und eben bei einem falschen Check-Wert den Upload verweigere.

Sprich: So gut wie nichts. (In manchen Beispielen tauchte move_Uploaded_file auf, aber ich weiß nicht, ob das für meinen Fall richtig ist.)

arbu man 23. Jan 2007 15:19

Re: Datei-Upload über http - PHP wie?
 
Hier ist mal mein Upload Script, mit kleinen User System, Endung Check und Log:
Code:
<?php

$user = array (

   "user" => "pass"

);

$path = "http://domain.de/path/";

$forbitten_ext = array("php", "php3", "php4", "php5", "phtml", "jsp", "asp", "aspx", "pl", ".htaccess");



if ( !(isset($_POST['user']) && isset($_POST['pass'])) ) {echo "Access Denied"; exit;}


if (isset($user[$_POST['user']])) {
  if ($user[$_POST['user']] != $_POST['pass']) {
     echo "Access Denied"; exit;
  }
} else {
  echo "Access Denied"; exit;
}

function br() {

         return chr(13).chr(10);

}

function addlogentry($file, $entry) {

         $handle = fopen($file, "a");
         fwrite($handle, date("[m.d.y g:i]: ").$entry. br());
         fclose($handle);

}

function checkexts($filename, $ext) {

         $result = false;
         for ($i=0; $i<sizeof($ext);$i++) {
            if (strpos($filename, ".".$ext[$i])) {
               return true;
            }
         }
         return $result;

}

if ( isset($_FILES['file']) ) {

  if (!checkexts($_FILES['file']['name'], $forbitten_ext)) {

     move_uploaded_file($_FILES['file']['tmp_name'], "./files/" . $_FILES['file']['name']);
     echo 'Datei "'.$_FILES['file']['name'].'" hochgeladen'.br().br().'URL: '.$path.'files/'.$_FILES['file']['name'];
     addlogentry("access.log", $_FILES['file']['name']." upload von ". $_POST['user']);


  } else {
    echo "Access Denied"; exit;
  }

}

?>

ManuMF 23. Jan 2007 16:00

Re: Datei-Upload über http - PHP wie?
 
Danke, das sollte mir erst mal weiterhelfen. Ich werde es mal ausprobieren.

r2c2 23. Jan 2007 16:17

Re: Datei-Upload über http - PHP wie?
 
http://www.selfphp.de/praxisbuch/pra...e=232&group=36

sollte helfen...

mfg

Christian

ManuMF 23. Jan 2007 16:27

Re: Datei-Upload über http - PHP wie?
 
Oh ja, Klasse :thumb:
Genau das, was ich brauche.

Gruß,
ManuMF


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:36 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz