WinformからWebAPIへファイルアップロードする方法
WinFormアプリケーション内からWebAPIを呼び出してファイルをアップロードするには、HttpClientクラスを使用してHTTPリクエストを送信できます。以下に、この目標を達成する方法を示す簡単なサンプルコードがあります:
最初に、WinFormアプリケーションにボタンとファイル選択ダイアログボックスを追加して、アップロードするファイルを選択します。
その後、ファイルをアップロードするために、ボタンのクリックイベントで以下のコードを書くことができます。
private async void btnUpload_Click(object sender, EventArgs e)
{
using (HttpClient client = new HttpClient())
{
// 设置WebAPI的URL
string apiUrl = "http://example.com/api/uploadfile";
// 选择要上传的文件
OpenFileDialog openFileDialog = new OpenFileDialog();
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
string filePath = openFileDialog.FileName;
// 读取文件内容
byte[] fileContent = File.ReadAllBytes(filePath);
// 创建MultipartFormDataContent对象
MultipartFormDataContent content = new MultipartFormDataContent();
ByteArrayContent fileContentData = new ByteArrayContent(fileContent);
content.Add(fileContentData, "file", Path.GetFileName(filePath));
// 发送HTTP请求
HttpResponseMessage response = await client.PostAsync(apiUrl, content);
if (response.IsSuccessStatusCode)
{
MessageBox.Show("文件上传成功!");
}
else
{
MessageBox.Show("文件上传失败");
}
}
}
}
上のコードでは、MultipartFormDataContentとしてファイル内容を送信し、WebAPIの指定URLにPOSTリクエストを送信するためにHttpClientクラスを使用しています。アップロードに成功した場合は成功メッセージボックスが表示され、失敗した場合は失敗メッセージボックスが表示されます。
WebAPIを呼び出す前に、WebAPIのURLが正しく設定されていることを確認し、ファイル選択ダイアログで選択されたファイルが存在することを確認してください。