0

Spring MVC を使用してファイルのアップロードを処理するサードパーティ クライアントに、.Net Framework 4.5 および Web API を使用してファイルをアップロードしようとしています。すべての試行で、「必要な MultipartFile パラメータ 'ファイル' が存在しません」というエラーが発生します。

他の誰かがこの問題に遭遇しましたか? もしそうなら、どのように解決しましたか?Web API が Spring に送信するための適切なメカニズム/コンテナーを提供しているようには見えないため、Spring はそれを認識します。

これが現在のコードです。

 Uri webService = new Uri(objectInstance);

            var fileContent = new ByteArrayContent(System.IO.File.ReadAllBytes(HttpContext.Current.Server.MapPath("taleotest.xml")));//new ByteArrayContent(new byte[100]);
            fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("file")
            {
                FileName = @"C:\taleotest.xml"
            };

            var formData = new FormUrlEncodedContent(new[]
                                            {
                                                new KeyValuePair<string, string>("name", "test"),
                                                new KeyValuePair<string, string>("title", "test2")
                                            });
            //fileContent.add
            var cookieContainer = new CookieContainer();
            cookieContainer.Add(webService, new Cookie("authToken", _authToken));
            var handler = new HttpClientHandler() { CookieContainer = cookieContainer };
            HttpClient httpClient = new HttpClient(handler);

            MultipartContent content = new MultipartContent();
            content.Add(formData);
            content.Add(fileContent);

            var response = httpClient.PostAsync(webService, content).Result;
4

2 に答える 2

0

私のリクエストの内容に以下を追加するとうまくいきました。

string boundary = "---------------------------" + DateTime.Now.Ticks.ToString("x");
            byte[] boundarybytes = System.Text.Encoding.ASCII.GetBytes("\r\n--" + boundary + "\r\n"); // Encoding
            byte[] trailer = System.Text.Encoding.ASCII.GetBytes("\r\n--" + boundary + "--\r\n");
于 2013-08-09T18:37:17.727 に答える