So, nachdem ich einige Stunden lang gegoogelt und nach diversen Lösungsmöglichkeiten gesucht (und diese ohne erfolg ausprobiert) habe, frage ich mal hier 😉
Aufgabe: Aus einem c# Windows-Anwendung sollen Dateien auf ein FTP-Server hoch und runtergeladen werden.
Problem:
Download klappt prima, aber upload hackt irgendwo.
Hier der Quelltext:
c# funktion:
private void UploadAFile()
{
string uriString = "http://www.eine-seite.de/test/Bilder/upload3.php";
string fileName = "C:\\test.jpg";
WebClient myWebClient = new WebClient();
byte[] responseArray = myWebClient.UploadFile(uriString, "POST", fileName);
MessageBox.Show("Response Received.The contents of the file uploaded are: "+ Encoding.ASCII.GetString(responseArray));
}
PHP
<?php
print_r($_REQUEST);
$uploadDir = 'App_Data/';
$uploadFile = $uploadDir . basename($_FILES['userfile']['name']);
print "<pre>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadFile))
{
print "File is valid, and was successfully uploaded. ";
}
else
{
print "Possible file upload attack! Here's some debugging info:\n";
print_r($_FILES);
}
print "</pre>";
?>
Fehler:
Die datei erreicht also prima den FTP-Server, wird aber aus dem Temp-Verzeichniss nicht ins entgültige kopiert, wo sie hin gehört.
safe_mode auf dem ftp-server ist off, file_uploads on, max_execution_time=20; post_max_size=55M, upload_max_filesize=12M
Hat jemand da eine Idee oder ein Losungsvorschlag?
Also so wie ich das sehe lädst du auf einen HTTP-Server hoch... Wie wärs wenn du stattdessen über C# direkt auf den FTP zugreifst?
Hi!
Ich bin mir ziemlich sicher zu wissen worans liegt.... 😉
...aber ich sags nicht.
Der Fehler ist zu offensichtlich 😜
lg
@Femaref: Danke für den tipp, ich schau mal ob ich damit besser weiter komme 😉
@M@TUK: Echt? ^^ 😉
ok... weil grad Weihnachten ist....
Aber Du kannst Dir Deinen Code auf keinen Fall
ordentlich durchgesehen haben....
Wenn man das:
[php]if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadFile))[/php]
mit der print_r-Ausgabe in dem Screenshot vergleicht merkt man sofort:
dass es [php]$_FILES['userfile'][/php] nicht geben kann weil offensichtlich [php]$_FILES['file'][/php] übergeben wird...
Danke 😉 Jetzt geht es.
Zu meinem Entschuldigung: Mit C#/PHP hab ich erst seit paar Wochen zu tun.
Ich bin eigentlich ein C/C++ Programmierer, aber wir brauchen ein Tool, den ich beschlossen habe in C# zu programmieren 😉 Ein Zusammenhang hätte ich mir aber denken können, hast recht 😉