Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Prism File-Upload: Wie am geschicktesten? (https://www.delphipraxis.net/55688-file-upload-wie-am-geschicktesten.html)

Phoenix 25. Okt 2005 13:30


File-Upload: Wie am geschicktesten?
 
Ich will eine Datei automatisiert über eine Webseite hochladen.

Das entsprechende Formular sieht so aus:

XML-Code:
<form ENCTYPE="multipart/form-data" method="POST">
   <input type="file" accept="Filename.ext" name="File">
   <input type="submit" value="Upload">
</form>
Wie kann ich mit .NET vom Prinzip her am geschicktesten die Datei hochladen?

Phoenix 26. Okt 2005 10:09

Re: File-Upload: Wie am geschicktesten?
 
Auch wenns noch keine ganzen 24h sind... *push* :duck:

cfmx 26. Okt 2005 10:21

Re: File-Upload: Wie am geschicktesten?
 
Hallo,

schau mal in die .NET Framework Hilfe.
Dort findest du unter HtmlInputFile.PostedFile ein Beispiel, wie du eine Datei auf den Server laden kannst.

Gruß
Stefan

Phoenix 28. Okt 2005 09:39

Re: File-Upload: Wie am geschicktesten?
 
Hi cfmx,

danke für die Antwort, aber das ist die falsche Seite :)

Ich will nicht auf dem Server eine vom Client gesendete Datei entgegennehmen sondern ich will von einem Clientprogramm aus eine Datei an einen Webserver übergeben.

Sinn und zweck ist es, dem User zu ersparen immer auf die Webseite zu gehen, die Datei über den Durchsuchen-Button in einem doch relativ langen Pfad raussuchen zu lassen und dann die Datei nochmal abzusenden. Es geht hier darum, bei World of Warcraft die über ein CharacterProfiler-Addon erstellte Datei in das eigene Gildenroster zu übertragen. Dann muss der Spieler nach dem zocken nur noch meinen Uploader starten und die Forensignatur ist z.B. wieder auf dem aktuellen Stand, die Rangänderungen sind aktuell etc...

Phoenix 28. Okt 2005 12:12

Re: File-Upload: Wie am geschicktesten?
 
So,

ich bin jetzt schonmal ein Stück weiter:

Delphi-Quellcode:
uses
   System.Net, System.Text;

// ... form declaration
   private
      g_client: WebClient;
// ... form decl.

procedure TWinForm1.Button2_Click(sender: System.Object; e: System.EventArgs);
var
  l_answer: Array of byte;
begin
  if not assigned(g_client) then
    g_client := System.Net.WebClient.Create();

  l_answer := g_client.DownloadData('http://www.wow-blackdragons.de/ladrius/roster/html/admin/update.php');
  RichTextBox1.Text := Encoding.ASCII.GetString(l_answer);
end;

procedure TWinForm1.Button1_Click(sender: System.Object; e: System.EventArgs);
var
  l_client: WebClient;
  l_answer: Array of byte;
begin
  if not assigned(g_client) then
    g_client := System.Net.WebClient.Create();

  l_answer := g_client.UploadFile('http://www.wow-blackdragons.de/ladrius/roster/html/admin/update.php', 'POST', 'D:\Programme\World of Warcraft\WTF\Account\BLACKSABBATH\SavedVariables\CharacterProfiler.lua');
  RichTextBox1.Text := Encoding.ASCII.GetString(l_answer);
end;
Button2 lädt sich erstmal die Webseite (das Hochladeformular). Das Funktioniert auch einwandfrei, als Antwort kommt zurück:
XML-Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
  <title>[Black Dragons Roster] Charakterinformationen aktualisieren</title>
  <link rel="stylesheet" type="text/css" href="../css/styles2.css">
  <link rel="stylesheet" type="text/css" href="../css/styles.css">
<style type="text/css">
   /* This is the border line & background colour round the entire page */
   .bodyline { background-color: #000000; border: 1px #212121 solid; }
</style>
</head>
<body>
<table border=0 cellpadding=0 cellspacing=0 width="100%">
  <tr><td align="center">
    <table border=0 cellpadding=8 cellspacing=0 width="100%">
      <tr><td width="100%" class="bodyline">
        <table border=0 cellpadding=0 cellspacing=0 width="100%">
          <tr><td align="center" width="100%" class="bodyline">
[url="http://www.wow-blackdragons.de"][img]../img/logo.gif[/img][/url]


          </td>
          <tr><td align="center">

<font color="#FFFFFF">Gildenmitglied aktualisieren (update.php)</font>[/b]





<form ENCTYPE="multipart/form-data" method="POST">
   <table>
      
      <tr>
         <td>CharacterProfiler.lua (Required) </td>
         <td><input type="file" accept="CharacterProfiler.lua" name="CharacterProfiler"></td>
      </tr>
      <tr>
         <td colspan="2"><center><input type="submit" value="Upload"></center></td>
      </tr>
   </table>
</form>
</td></tr>
<tr><td>







</td></tr>
</table>
</td></tr></table>
<hr>
W&auml;hle die Datei "CharacterProfiler.lua" aus


(Zu finden unter C:\Program Files\World of Warcraft\WTF\Account\*Accountname*\SavedVariables\)


<p align="center">[url="../index.php"]Zur&uuml;ck zur &Uuml;bersicht[/url]</p>
</body>
</html>
Button1 sollte nun ja die Datei hochladen, so wie es das Formular verlangt, also als POST. Als Antwort kommt aber nicht die Seite zurück die zurück kommt, wenn man die Datei im Browser hochlädt sondern einfach nochmal die normale Upload-Seite, als hätte sie die Datei nicht erhalten.

Woran liegt das und was kann ich dagegen tun?


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:33 Uhr.

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