Ergebnis 1 bis 7 von 7
  1. #1
    Anfänger Avatar von Guardian Angel
    Registriert seit
    01.04.2012
    Beiträge
    19

    Standard [C#] Hilfe bei File Upload

    Also ich beschäftige mich seit einigen Tagen mit C# und möchte jetzt folgende API benutzen um eine Datei hochzuladen:
    http://www.share-online.biz/uploadapi/

    Der erste Schritt (Create Upload Session) funktioniert bei mir

    Wer den Code haben will kann mich anschreiben

    Wie man sicher merkt ist sind diese Funktionen nicht aus meiner eigenen Feder entstanden sondern mehr oder weniger Copy&Paste.

    Jetzt weiß ich nicht, wie ich den zweiten Schritt(also den eigentlichen FileUpload) angehen soll...
    Vllt könnt ihr mir ja einen Denkanstoß in die richtige Richtung geben

    MfG
    Guardian Angel

    P.S.:
    ja ich weiß, dass SO ein upload tool anbietet aber ich möchte das gerne selber schaffen um daran zu lernen
    Geändert von Guardian Angel (18.04.2012 um 00:20 Uhr)

  2. #2
    Coding Contest Winner
    Registriert seit
    21.03.2008
    Beiträge
    273

    Standard AW: [C#] Hilfe bei File Upload

    Also, alle Daten werden per POST übergeben, ich würde Dir also Raten eine eigene Funktion für SendPOST(String URL, String POSTData) zu schreiben, macht das ganze vieeel übersichtlicher =)

    Aber ok, während die Session nur Username+PW verwendet brauchst Du in der Upload-Funktion folgende Parameter:
    Request to: http://server/upv3.php Required Vars: [username] account username [password] account password [upload_session] upload session name from step 1 [chunk_no] set to "1" [chunk_number] set to "1" [filesize] filesize of current file in bytes [fn] filedata (in HTTP forms known as type="file") [finalize] set to "1"
    Die Username, Password und Session hast Du ja schon, jetzt brauchst Du die Chuck_no (welche 1 ist, da wir keine Chunks verwenden), genau wie die ChunkNumber (auch 1). Die Filesize wird einfach auf die größe des Files gesetzt (FileStream.Length, bzw dein arFile.Length) und schließlich folgen die Daten, ich nehme an einfach Normal ASCII-Codiert. ( = Encoding.ASCII.GetString(arFile)). Finalize wird auf 1 gesetzt -> fertig, du erhälst einen Link zum File und einen MD5 Hash zurück =).

    Ich hab Dir mit Absicht nur Stichworte hingeworfen, Du willst ja lernen. Wenn Du fragen zum einlesen des Files etc. hast kann ich gerne helfen, wollte nur nicht alles vorkauen =)

    Greez Easy
    Gamehacking, Coding, Reversing and Security!
    Blog @easysurfer.me

  3. Folgende Benutzer haben sich für diesen Beitrag bedankt:

    Guardian Angel (17.04.2012)

  4. #3
    Anfänger Avatar von Guardian Angel
    Registriert seit
    01.04.2012
    Beiträge
    19

    Standard AW: [C#] Hilfe bei File Upload

    Erstmal vielen Dank für die ganzen Anregungen

    Bei mir siehts mitlerweile so aus (ich hab noch eine Funktion zum anzeigen von allen .rar dateien in einem ordner "geschrieben"):
    soweit klappt auch alles. Allerdings kommt bei dem FileUpload
    folgende Meldung: "Der Remoteserver hat einen Fehler zurückgegeben: (415) Unsupported Media Type."
    und zwar bei Folgender Zeile in der SendPOST funktion:
    Code:
    // Get the response.
                WebResponse response = request.GetResponse();
    Ich nehme an, dass es damit zusammenhängt, dass ich nicht weiß, wie ich "ich nehme an einfach Normal ASCII-Codiert. ( = Encoding.ASCII.GetString(arFile))" umsetzen kann.
    Vllt kann mir da ja jmd helfen

    MfG
    Geändert von Guardian Angel (18.04.2012 um 00:20 Uhr)

  5. #4
    Coding Contest Winner
    Registriert seit
    21.03.2008
    Beiträge
    273

    Standard AW: [C#] Hilfe bei File Upload

    Du programmierst erst seid wenigen Tagen in C# ? Dafür ist der Source aber doch sehr sehr gut, nice

    Ok, mein Fehler, ich hab nicht weit genug gedacht. Der Server hat keine Ahnung wie er mit dem File das ankommt umgehen soll. Daher gibt es in dem HTTP-Header die sog. Content-Type Eigenschaft, z.B:
    Content-Type: text/plain
    Diese sog. MIME-Typen findest Du unter anderem hier. Diesen MIME-Type setzt Du einfach in deiner HttpWebRequest.

    Das schnellste wird sein wenn Du einen simplen Fileupload über den Browser (ohne Flash und Javasciptkomponenten) mitsniffst, da findest Du genau wie der Type aussieht und die die gesammte POST-Request aufgebaut ist.

    Spiele mit dem Type ein bisschen rum, nehme für den Anfang mal application/pdf oder so. Wenn nicht schau Dir mal das RCF zum Fileupload an... Mit diesen Infos solltest Du jetzt weiterkommen, viel Spass

    Greez Easy
    Gamehacking, Coding, Reversing and Security!
    Blog @easysurfer.me

  6. Folgende Benutzer haben sich für diesen Beitrag bedankt:

    Guardian Angel (17.04.2012)

  7. #5
    Anfänger Avatar von Guardian Angel
    Registriert seit
    01.04.2012
    Beiträge
    19

    Standard AW: [C#] Hilfe bei File Upload

    Zitat Zitat von Easysurfer
    Du programmierst erst seid wenigen Tagen in C# ? Dafür ist der Source aber doch sehr sehr gut, nice
    Erstmal Danke liegt aber wohl daran, dass ich schon in C++ Objektorientiert programmiert habe Konnte mich deswegen relativ schnell wieder einfühlen.

    Zu meinem (erneuten Problem)
    Also ich hab jetzt per "Live HTTP Headers" den Upload mitverfolgt.

    den Content-type habe ich aber anhand der Webform auf der API-Seite "herausgefunden"

    Nun habe ich folgendes Problem:
    "Die zugrunde liegende Verbindung wurde geschlossen: Die Verbindung wurde unerwartet getrennt.."
    Und zwar an folgender Stelle:
    Code:
    // Get the request stream.
                Stream dataStream = request.GetRequestStream();
    Ich dachte, dass es daran liegt, dass keine persistente Verbindung besteht, das habe ich aber meiner Meinung nach mit
    Code:
    //Persistente Verbindung aufbauen
                request.KeepAlive = false;
    gelöst.

    Google hilft mir bei der Problematik erstaunlich wenig weiter...
    vllt kannst du mir ja noch einmal helfen

    MfG

  8. #6

    Registriert seit
    17.06.2009
    Beiträge
    559

    Standard AW: [C#] Hilfe bei File Upload

    Wenn du eine Datei senden möchtest, muss der Content-Type afaik multipart/form-data und nicht application/x-www-form-urlencoded sein. Zudem musst du ein boundary angeben und die Parameter in folgender Form versenden, gefolgt vom Inhalt der Datei.
    Code:
    ------------hier der boundary string
    Content-Disposition: form-data; name="hier der Parameter"
    
    hier der Inhalt
    Ich schlage vor du schreibst dir neben SendPOST eine weitere Funktion SendPostFile und passt es da entsprechend an.

  9. Folgende Benutzer haben sich für diesen Beitrag bedankt:

    Guardian Angel (17.04.2012)

  10. #7
    Anfänger Avatar von Guardian Angel
    Registriert seit
    01.04.2012
    Beiträge
    19

    Standard AW: [C#] Hilfe bei File Upload

    Mit Hilfe von Easysurfer und einer langen IRC-Sitzung hab ichs schlussendlich hinbekommen

    vielen Dank dafür an ihn und danke an
    inout



    Wer den Code haben will kann mich anschreiben

    MfG
    G A

Ähnliche Themen

  1. keine connection zu facebook, ebay, file-upload etc...
    Von dimavery im Forum Anwendungssoftware
    Antworten: 5
    Letzter Beitrag: 31.07.2010, 15:36
  2. File upload
    Von mp93 im Forum PHP
    Antworten: 10
    Letzter Beitrag: 25.02.2009, 20:29

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •