C#アプリケーションのアプリケーション/フォームデータ?

ミスターX

以下のコードを使用して、C#コンソールアプリケーションを使用してファイルをURLにアップロードしています。ファイルをアップロードせず、エラーも返されません。

string[] files = new string []{ "C:/test.csv" };


public static string UploadFilesToRemoteUrl(string url, string[] files, NameValueCollection formFields = null)
    {
        string boundary = "----------------------------" + DateTime.Now.Ticks.ToString("x");

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
        request.ContentType = "multipart/form-data; boundary=" +
                                boundary;
        request.Method = "POST";
        request.KeepAlive = true;

        Stream memStream = new System.IO.MemoryStream();

        var boundarybytes = System.Text.Encoding.ASCII.GetBytes("\r\n--" +
                                                                boundary + "\r\n");
        var endBoundaryBytes = System.Text.Encoding.ASCII.GetBytes("\r\n--" +
                                                                    boundary + "--");


        string formdataTemplate = "\r\n--" + boundary +
                                    "\r\nContent-Disposition: form-data; name=\"{0}\";\r\n\r\n{1}";

        if (formFields != null)
        {
            foreach (string key in formFields.Keys)
            {
                string formitem = string.Format(formdataTemplate, key, formFields[key]);
                byte[] formitembytes = System.Text.Encoding.UTF8.GetBytes(formitem);
                memStream.Write(formitembytes, 0, formitembytes.Length);
            }
        }

        string headerTemplate =
            "Content-Disposition: form-data; name=\"{0}\"; filename=\"{1}\"\r\n" +
            "Content-Type: application/octet-stream\r\n\r\n";

        for (int i = 0; i < files.Length; i++)
        {
            memStream.Write(boundarybytes, 0, boundarybytes.Length);
            var header = string.Format(headerTemplate, "uplTheFile", files[i]);
            var headerbytes = System.Text.Encoding.UTF8.GetBytes(header);

            memStream.Write(headerbytes, 0, headerbytes.Length);

            using (var fileStream = new FileStream(files[i], FileMode.Open, FileAccess.Read))
            {
                var buffer = new byte[1024];
                var bytesRead = 0;
                while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0)
                {
                    memStream.Write(buffer, 0, bytesRead);
                }
            }
        }

        memStream.Write(endBoundaryBytes, 0, endBoundaryBytes.Length);
        request.ContentLength = memStream.Length;

        using (Stream requestStream = request.GetRequestStream())
        {
            memStream.Position = 0;
            byte[] tempBuffer = new byte[memStream.Length];
            memStream.Read(tempBuffer, 0, tempBuffer.Length);
            memStream.Close();
            requestStream.Write(tempBuffer, 0, tempBuffer.Length);
        }

        using (var response = request.GetResponse())
        {
            Stream stream2 = response.GetResponseStream();
            StreamReader reader2 = new StreamReader(stream2);
            return reader2.ReadToEnd();
        }
    }

HTTPWebrequestを使用してファイルをアップロードする(multipart / form-data)

このコードを確認しましたが、指定されたURLにファイルがアップロードされておらず、エラーも返されません。

ステファン

この質問はすでにここで回答されています:HTTPWebrequest(multipart / form-data)を使用してファイルをアップロードする

また、コード"C:/test.csv"では、ファイルの内容ではなく、実際に文字列送信していることに注意してくださいその内容をストリーミングするにはFileStreamhttps://msdn.microsoft.com/en-us/library/system.io.filestream.aspxを開く必要があります(これは上記のリンク先の回答でもカバーされています)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Windows フォーム アプリケーションの C# WYSIWYG HTML エディター

分類Dev

WindowsフォームアプリケーションC#でdatagridviewデータを更新できません

分類Dev

C#のWindowsフォームアプリケーションのストアドプロシージャからDataGridViewにデータを表示する

分類Dev

フォームレスアプリケーションのTFDGUIxWaitCursor

分類Dev

Windowsフォームアプリケーション用のGoogleAnalytics?

分類Dev

Apache Tomcatアプリケーションのデフォルトのセッションタイムアウト

分類Dev

Windowsフォームアプリケーション用の最新のUIアプリケーション設計

分類Dev

マルチフォームGUIアプリケーションC#

分類Dev

フォームタスクのアプリケーションを無効にする(C#)

分類Dev

C#ウィンドウフォームアプリケーションのリソースパス?

分類Dev

C#フォームアプリケーションを別のアプリケーションに挿入する

分類Dev

アプリケーションをデフォルトのアプリケーションにする

分類Dev

c#.netWindowsフォームアプリケーションでの画像の比較

分類Dev

C#アプリケーションのメインフォームのリストを更新する方法

分類Dev

C#-他のアプリケーションでフォームを表示

分類Dev

c#Windowsフォームアプリケーションの印刷

分類Dev

C#Windowsフォームアプリケーションの終了

分類Dev

Windowsフォームアプリケーションのみを使用したC#ゲーム

分類Dev

Djangoアプリケーション、Djangoフォーム

分類Dev

Windowsフォームアプリケーションでのデータベース接続

分類Dev

apexoracleデータベースアプリケーションフォームでのplsql検証

分類Dev

WindowsフォームアプリケーションC#:グローバル変数の追加:

分類Dev

Windowsアプリケーションのユーザー定義フォーム

分類Dev

c#フォームコンテナ内の外部UWPアプリケーションを表示する

分類Dev

フレームワークのアプリケーション

分類Dev

SpringWebアプリケーション-フォームデータの取得-postメソッド

分類Dev

C#サーバーアプリケーションのデプロイ

分類Dev

WindowsフォームアプリケーションでのWindowsストア通知

分類Dev

C#で、単一のWindowsアプリケーションのフォームを最小化する方法

Related 関連記事

  1. 1

    Windows フォーム アプリケーションの C# WYSIWYG HTML エディター

  2. 2

    WindowsフォームアプリケーションC#でdatagridviewデータを更新できません

  3. 3

    C#のWindowsフォームアプリケーションのストアドプロシージャからDataGridViewにデータを表示する

  4. 4

    フォームレスアプリケーションのTFDGUIxWaitCursor

  5. 5

    Windowsフォームアプリケーション用のGoogleAnalytics?

  6. 6

    Apache Tomcatアプリケーションのデフォルトのセッションタイムアウト

  7. 7

    Windowsフォームアプリケーション用の最新のUIアプリケーション設計

  8. 8

    マルチフォームGUIアプリケーションC#

  9. 9

    フォームタスクのアプリケーションを無効にする(C#)

  10. 10

    C#ウィンドウフォームアプリケーションのリソースパス?

  11. 11

    C#フォームアプリケーションを別のアプリケーションに挿入する

  12. 12

    アプリケーションをデフォルトのアプリケーションにする

  13. 13

    c#.netWindowsフォームアプリケーションでの画像の比較

  14. 14

    C#アプリケーションのメインフォームのリストを更新する方法

  15. 15

    C#-他のアプリケーションでフォームを表示

  16. 16

    c#Windowsフォームアプリケーションの印刷

  17. 17

    C#Windowsフォームアプリケーションの終了

  18. 18

    Windowsフォームアプリケーションのみを使用したC#ゲーム

  19. 19

    Djangoアプリケーション、Djangoフォーム

  20. 20

    Windowsフォームアプリケーションでのデータベース接続

  21. 21

    apexoracleデータベースアプリケーションフォームでのplsql検証

  22. 22

    WindowsフォームアプリケーションC#:グローバル変数の追加:

  23. 23

    Windowsアプリケーションのユーザー定義フォーム

  24. 24

    c#フォームコンテナ内の外部UWPアプリケーションを表示する

  25. 25

    フレームワークのアプリケーション

  26. 26

    SpringWebアプリケーション-フォームデータの取得-postメソッド

  27. 27

    C#サーバーアプリケーションのデプロイ

  28. 28

    WindowsフォームアプリケーションでのWindowsストア通知

  29. 29

    C#で、単一のWindowsアプリケーションのフォームを最小化する方法

ホットタグ

アーカイブ