0

今日、自分のサイトに投稿できるプログラムがありますが、プログラムにファイルアップロードサポートを追加する必要があります(jpgの場合)。プログラムを投稿するだけでこのような問題が発生しましたが、何時間も経つと、ファイルのアップロードでプログラムを動作させることができなくなりました。

今日、私のコードはあまり良くありませんが、それは機能し、私だけがそれを使用しています。これが私のコードです。少し削除されていますが、私が何を手伝う必要があるかを理解していただければ幸いです。ありがとう!

(「upfile」は画像の入力フィールド名です)

public static string Post(string url, int id, string message)
{
    try
    {
        string param =
            string.Format(
                "MAX_FILE_SIZE=2097152&id={0}&com={1}&upfile", id, message);

        byte[] bytes = Encoding.ASCII.GetBytes(param);

        var post = (HttpWebRequest)WebRequest.Create(url);

        post.ProtocolVersion = HttpVersion.Version10;
        post.Method = "POST";
        post.AllowAutoRedirect = false;
        post.ContentType = "application/x-www-form-urlencoded";
        post.ContentLength = bytes.Length;

        post.UserAgent =
            "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.15) Gecko/2009101601 Firefox/3.0.15 (.NET CLR 3.5.30729)";
        post.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";

        Stream requestStream = post.GetRequestStream();
        requestStream.Write(bytes, 0, bytes.Length);
        requestStream.Close();

        var webResponse = (HttpWebResponse)post.GetResponse();
        var sr = new StreamReader(webResponse.GetResponseStream());
        return sr.ReadToEnd();
    }
    catch (Exception exception)
    {
        return null;
    }
}

編集:ここでの私の貧弱な説明は私が助けを必要としているものです:私は今日上記の方法を使用して私のサイトに投稿しますが、私の方法でファイルをアップロードするためのサポートを追加する必要があります。近い将来、Webページの動作を変更することはできないため、POSTリクエストを使用して変更する必要があります。うまくいかないので、自分でやろうと思っているので、画像を読んでリクエストを投稿するために何を追加する必要があるのか​​、誰か助けてくれないかと思います!

ありがとう!

4

3 に答える 3

1

application/x-www-form-urlencodedの代わりにmultipart/form-dataのエンコードを使用する必要があり、それに応じて投稿データをエンコードする必要があります

HTTPWebrequestを使用したファイルのアップロード(multipart / form-data)を参照してください。

于 2012-05-23T15:57:47.220 に答える
0

現在のソリューションよりも優れたソリューションが必要だと思います。C#を使用している場合は、ファイルのアップロードに使用できるFILEアップロードコントロールがあります。許可する有効なファイルの種類に制限することもできます。

コントロールはFileUploadです

于 2012-05-23T15:18:52.983 に答える
0

あなたのコンテンツタイプはすべきではありmultipart/form-data;ませんか?アップロードクラスを使用できる場合は、アップロードクラスを利用できるようにすることができます。

于 2012-05-23T16:01:50.040 に答える