目次
Windowsフォームアプリケーション コード
- 新しいWindowsフォームアプリケーションプロジェクトの作成
- Visual Studioで新しいWindowsフォームアプリケーションプロジェクトを作成します。
- フォームデザイナーでボタンの追加
- フォームデザイナーを開き、ボタンをフォームにドラッグします。
- ボタンのプロパティで、
Name
をbutton1
に設定し、Text
プロパティを適切なテキストに設定します。
- ボタンのイベントハンドラーの追加
- ボタンをダブルクリックして、イベントハンドラーを自動生成します。
- イベントハンドラーの実装
- ボタンのクリックイベントハンドラーに以下のコードを追加します。
using System;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;
using System.Windows.Forms;
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private async void button1_Click(object sender, EventArgs e)
{
string filePath = @"path\to\your\file.pdf"; // PDFファイルのパス
byte[] pdfBytes = File.ReadAllBytes(filePath); // ファイルをバイナリに変換
using (var client = new HttpClient())
{
var requestUri = "http://yourwebapi.com/api/uploadpdf"; // Web APIのURL
var content = new ByteArrayContent(pdfBytes);
content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/octet-stream");
var response = await client.PostAsync(requestUri, content);
if (response.IsSuccessStatusCode)
{
MessageBox.Show("PDFファイルが正常にアップロードされました。");
}
else
{
MessageBox.Show("エラーが発生しました: " + response.StatusCode);
}
}
}
}
注意点
- ファイルパス
filePath
は、実際にアップロードするPDFファイルのパスに置き換えてください。 - Web APIのURL
requestUri
も、実際のAPIエンドポイントに置き換えてください。 - 非同期操作を扱うため、ボタンのイベントハンドラーは
async void
として宣言されています。 - エラー処理や例外処理を適切に実装することが重要です。
このサンプルコードは、指定された要件に基づいています。実際のアプリケーションでは、ファイルの選択ダイアログの追加、エラーハンドリングの強化、ユーザーインターフェイスの改善など、さらなる機能を追加することが考えられます。
ASP.NET Web API (.NET Framework) のサンプルコード
以下の例では、ASP.NET Web API 2を使用しています。
- 新しいWeb APIプロジェクトの作成
- Visual Studioで「新しいプロジェクト」を作成します。
- 「ASP.NET Webアプリケーション (.NET Framework)」を選択し、プロジェクト名を設定します。
- 「Web API」テンプレートを選択します。
- コントローラの追加
- プロジェクト内の「Controllers」フォルダに新しいWeb APIコントローラを追加します(例:
UploadPdfController
)。
- プロジェクト内の「Controllers」フォルダに新しいWeb APIコントローラを追加します(例:
- コントローラの実装
- 以下は
UploadPdfController
の基本的な実装です。
- 以下は
using System;
using System.Data.SqlClient;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
using System.Web.Http;
namespace YourNamespace
{
public class UploadPdfController : ApiController
{
public async Task<HttpResponseMessage> Post()
{
HttpResponseMessage result = null;
// Request.Contentを直接読み取る
byte[] pdfBytes = await Request.Content.ReadAsByteArrayAsync();
// SQL Serverへの保存処理
string connectionString = "Your Connection String";
string sql = "INSERT INTO YourTable (PdfColumn) VALUES (@PdfData)";
using (var conn = new SqlConnection(connectionString))
using (var cmd = new SqlCommand(sql, conn))
{
cmd.Parameters.AddWithValue("@PdfData", pdfBytes);
conn.Open();
cmd.ExecuteNonQuery();
}
result = Request.CreateResponse(HttpStatusCode.Created);
return result;
}
}
}
このコードは、以下のように動作します:
- クライアント(この場合はWindowsアプリケーション)からのHTTP POSTリクエストを受け取ります。
- リクエストボディから直接バイナリデータを読み込みます。
- 読み込んだバイナリデータをSQL Serverデータベースに保存します。
注意点
- セキュリティ: ファイルを受け取るWeb APIはセキュリティ対策が重要です。特に、ファイルサイズの制限やファイルタイプの検証を行うことをお勧めします。
- エラーハンドリング: 実際のアプリケーションでは、データベース接続の失敗やその他のエラーを適切に処理するためのエラーハンドリングを実装する必要があります。
- 接続文字列:
Your Connection String
は適切なSQL Server接続文字列に置き換えてください。 - テーブル構造:
YourTable
とPdfColumn
は実際のデータベースのテーブル名と列名に合わせて変更してください。また、この列がVARBINARY(MAX)
などのバイナリデータを保存できる型であることを確認してください。
このコードは基本的なガイドラインを提供するものであり、プロダクション環境での使用には、追加の機能やセキュリティ対策が必要です。
ステップ 1: IISのインストール(まだ行っていない場合)
- コントロールパネルを開きます。
- プログラム > プログラムと機能に移動し、Windowsの機能の有効化または無効化をクリックします。
- Internet Information Servicesを探し、チェックボックスをオンにしてIISを有効化します。
- 必要なIIS機能(例: IIS管理コンソール)を有効にします。
- 変更を適用してPCを再起動します。
ステップ 2: Web APIプロジェクトの公開
- Visual StudioでWeb APIプロジェクトを開きます。
- プロジェクトを右クリックし、公開を選択します。
- 公開ターゲットとしてファイルシステムを選択し、公開先のフォルダを指定します(例:
C:\inetpub\wwwroot\YourWebApi
)。 - 公開ボタンをクリックしてプロジェクトを指定したフォルダにコピーします。
ステップ 3: IISでのWebサイトの設定
- IISマネージャーを開きます。
- サイトを右クリックして新しいサイトを選択します。
- サイト名を入力し、物理パスに先ほど公開したフォルダ(例:
C:\inetpub\wwwroot\YourWebApi
)を指定します。 - ポート番号を設定します(例: 80)。ただし、他のサイトで使用していないポート番号を選択してください。
- OKをクリックしてサイトを作成します。
ステップ 4: Webサイトの確認
- Webブラウザを開き、
http://localhost
(または設定したポート番号が80以外の場合はhttp://localhost:ポート番号
)にアクセスしてWeb APIが動作しているか確認します。
注意点
- セキュリティ: ローカルの開発環境でテストする場合は問題ありませんが、本番環境にデプロイする場合はセキュリティ対策を十分に行う必要があります。
- アプリケーションプール: 必要に応じて、IISで新しいアプリケーションプールを設定することもできます。
- エラー対応: デプロイ後にエラーが発生した場合は、ログファイル、イベントビューア、IISの設定を確認してください。
これらの手順に従うことで、ローカルのIISにASP.NET Web APIプロジェクトをデプロイできます。