参考文献
http://www.atmarkit.co.jp/fdotnet/dotnettips/966aspajaxasyncfileupload/aspajaxasyncfileupload.html
にもあるように、ファイル・アップロードのためのサーバ・コントロールとしては、FileUpload/HtmlInputFileコントロールがあるが、これらのコントロールをUpdatePanelコントロールと組み合わせて利用することはできない。
そのため、
サンプル
デザイン部
<head runat="server">
<script type="text/javascript">
function uploadCompleted(sender, args) {
$get('Label1'). innerHTML =
args.get_fileName() + 'のアップロードに成功しました。';
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<ajaxToolkit:AsyncFileUpload ID="AsyncFileUpload1" runat="server"
ThrobberID="Image1" onclientuploadcomplete="uploadCompleted" />
<asp:Image ID="Image1" runat="server"
ImageUrl="~/Images/progress-indicator.gif" />
<br />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</div>
</form>
</body>
プログラム部
Protected Sub AsyncFileUpload1_UploadedComplete(sender As Object, e As AjaxControlToolkit.AsyncFileUploadEventArgs) Handles AsyncFileUpload1.UploadedComplete
' アップロード先のパスを生成
Dim uppath As String = Server.MapPath( _
"~/App_Data/" + Path.GetFileName(e.FileName))
' アップロード・ファイルを保存
AsyncFileUpload1.SaveAs(uppath)
End Sub
メモ
* 上記の「サンプル」にボタンを追加し、ファイルをオープンしようとすると、以下のような現象が起こってしまう(このコントロールは、ファイル保存専用?)
+ ファイル名などファイルの情報がとれずNullが返ってくる
+ ボタンのクリックイベントでUploadedCompleteイベントが呼ばれてしまう
結局、FileUploadコントロールを使うしかないのかも。。。
http://blogs.yahoo.co.jp/dk521123/26824686.html