ICallbackEventHandler を使用してファイルをアップロードする方法に関する記事を見つけました。記事はhttp://www.dotnetfunda.com/articles/article484-ajax-style-file-upload-.aspxです。問題は、Webclient.UploadFile("xxxx","POST","xxxxx") を使用したいときに、ファイル名が見つからないという例外が発生することです。ファイルが見つからない理由は、 HTMLInputFile クライアント側から選択されたファイルのフル パスを取得できません。
HTMLInputFile から値を取得するために使用している JavaScript は、標準の "document.getElementById('THEID')" です。
セキュリティ上の理由から、localhost を使用してクライアント側でこの値を取得できないことを Web で読みましたが、実稼働サーバーでこれを試した場合は機能するはずです。
これをローカルでテストできるようにするための回避策はありますか?
RaiseCallbackEvent が発生したときに値を取得するコードの一部を次に示します。
Dim channelName As String = splitEventArgument(2)
Dim description As String = splitEventArgument(3)
Dim file As String = splitEventArgument(4)
Dim classname As String = String.Empty
Dim webClient As New WebClient
Try
webClient.UploadFile("http://localhost/webchatwebsite2/UploadChannelImage.aspx", "POST", file)
Catch ex As Exception
If True Then
End If
End Try