Datei-Upload mit PHP ohne Formular?

MS47475

Mitglied
Hallo,

ich möchte mittels Client c#-Programm ein PHP-Script auf einem Server aufrufen.
Bei diesem Aufruf soll automatisch eine Datei auf den Server hochgeladen werden, deren lokalen Speicherort das PHP-Script per Parameter erhält.
Eigentlich ist das doch nichts anderes wie ein Fileupload-Formular, oder irre ich mich da?
Da dies automatisch und nicht per Formular, welches von einer Person bedient werden soll, wüsste ich gern, wie das gemacht werden kann. Ich bin für jede Hilfe dankbar.

Gruß
Markus
 
Also du erstellst einfach ein ganz normales PHP-Fileupload-Skript, dass die gesendeten Dateien verarbeiten kann, nur einfach ohne Formular, da du dieses ja nicht benötigst. In deinem C# Programm kannst du dann z.B. mit der WebRequest-Klasse eine Datei hochladen. Ein Beispiel dazu findest du hier:
http://msdn2.microsoft.com/de-de/library/debx8sh9(VS.80).aspx

Gruß,
Stefan

Danke dir.
Habs jetzt allerdings etwas anders gelöst mit der WebClient-Klasse.
Der C#-Code
Code:
using System;
using System.Net;

namespace Fileupload
{
    class Program
    {
        public static void Main(string[] args)
        {
            WebClient Client = new WebClient();
            Client.Headers.Add("Content-Type","application/x-www-form-urlencoded");
            Client.UploadFile("http://localhost/test.php", "test.txt"); 
        }
    }
}

die test.php kann dann in etwa so aussehen:
PHP:
<?php
    if( isset($_FILES['file']['tmp_name']) )
    {
        $fileContentLines = file($_FILES['file']['tmp_name']);
        foreach($fileContentLines as $line_num => $line)
        {
            //mach was sinnvolles damit
        }
    }
?>
 
Um flexibler zu sein würde ich dir raten, auf FTP-Basis hochzuladen.

Da umgehst du die PHP-Probleme (falls du nicht die php.ini ändern kannst) mit maximaler Dateigröße und dem maximalen Cache.

Eigener FTP-User mit eigenem Unterverzeichnis -> Upload
Anschließend via PHP die Datei in den Web-Ordner verschieben.

Ein weiterer Vorteil wäre hierbei eine Resume-Funktion
 
Um flexibler zu sein würde ich dir raten, auf FTP-Basis hochzuladen.

Da umgehst du die PHP-Probleme (falls du nicht die php.ini ändern kannst) mit maximaler Dateigröße und dem maximalen Cache.

Eigener FTP-User mit eigenem Unterverzeichnis -> Upload
Anschließend via PHP die Datei in den Web-Ordner verschieben.

Ein weiterer Vorteil wäre hierbei eine Resume-Funktion

Hmm, da hast du natürlich recht. Da werd ich mir mal Gedanken zu machen.
Danke für den Hinweis

Gruß
Markus
 
Zurück