Avatar billede nielsbrinch Nybegynder
20. januar 2004 - 15:27 Der er 3 kommentarer og
1 løsning

http send til cgi-fil

I mit Windows-C# program vil jeg gerne lave et http post til en cgi-fil, hvor den første del er almindelig tekst og den anden del er en fil, f.eks. et billede, en video eller et program.

Nogen der lige har en god tutorial eller et eksempel?
Avatar billede arne_v Ekspert
24. januar 2004 - 20:08 #1
using System;
using System.IO;
using System.Net;

public class FileUpload
{
    private const string BOUNDARY = "ArneArne";
    public static void Main(string[] args)
    {
        upload("http://localhost/upload.php", "C:\\z.c", "C:\\z.exe");
    }
    public static void upload(string url, string textfile, string binfile)
    {
        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
        req.Method = "POST";
        req.ContentType = "multipart/form-data, boundary=" + BOUNDARY;
        StreamWriter post = new StreamWriter(req.GetRequestStream());
        post.WriteLine("--" + BOUNDARY);
        post.WriteLine("Content-disposition: attachment; name=\"textfile\"; filename=\"" + textfile + "\"");
        post.WriteLine("Content-type: text/plain");
        post.WriteLine("");
        StreamReader txtf = new StreamReader(new FileStream(textfile, FileMode.Open));
        string line;
        while((line = txtf.ReadLine()) != null)
        {
            post.WriteLine(line);
        }
        txtf.Close();
        post.WriteLine("--" + BOUNDARY);
        post.WriteLine("Content-disposition: attachment; name=\"binfile\"; filename=\"" + binfile + "\"");
        post.WriteLine("Content-type: application/octet-stream");
        post.WriteLine("Content-Transfer-Encoding: binary");
        post.WriteLine("");
        post.Flush();
        Stream binf = new FileStream(binfile, FileMode.Open);
        int c;
        while((c = binf.ReadByte()) >= 0) {
            post.BaseStream.WriteByte((byte)c);
        }
        binf.Close();
        post.BaseStream.Flush();
        post.Close();
        HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
        Console.WriteLine(resp.StatusCode);
        resp.Close();
    }
}
Avatar billede nielsbrinch Nybegynder
26. januar 2004 - 12:52 #2
Tak for det!
Avatar billede mbj@adr.dk Nybegynder
11. juni 2005 - 01:21 #3
God eksempel men hvordan ændre man det til første text1 så text 2 og tilsidst et billede.gif.

Som fra en Form

Text 1:<INPUT TYPE=TEXT NAME="text1"><BR>
Text 2:<INPUT TYPE=TEXT NAME="text2"><BR>
Fil:<INPUT TYPE=FILE NAME="FILE1">
Avatar billede arne_v Ekspert
23. juni 2005 - 01:25 #4
3 parts og ikke 2 parts !?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester