環境: PowerShell v2 (Windows 7) ※サーバー側は、IIS7.5, ASP.NET MVC
PowerShellでWebClientのUploadFileメゾットを使用しWebサイトへファイルをアップロードします。
$wc = New-Object Net.WebClient
$wc.Credentials = $wc.Credentials = [Net.CredentialCache]::DefaultCredentials
try {
$res = $wc.UploadFile("http://www.gine.jp/home/Upload2", "c:\Temp\Koala.jpg")
$s = [text.encoding]::UTF8.getString($res)
Write-Output $s
}
catch [Exception]
{
Write-Output $_.Exception.Message
}
finally
{
$wc.Dispose()
}
ちなみに受信する側は ASP.NET MVC で新規プロジェクトを作成し、HomeController.cs に下記コードを追加してあります。
HomeController.cs
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Upload(HttpPostedFileBase file)
{
string fn = @"c:\temp\upload\" + System.IO.Path.GetFileName(file.FileName);
file.SaveAs(fn);
return Content("アップロード完了", "text/plain");
}
保存が完了したら、"アップロード完了"というテキストを返しています。
また、PowerShell で WebClientのUploadFileメゾットでアップロードを行っていますのでHttpPostedFileBase は "file"となります。