2004.11.26

ファイルのアップロード

画面でファイルを指定し、そのファイルをサーバーにアップロードする処理は
以下のようにおこないます。

○HTMLコード
<form id="Form1" method="post" runat="server" enctype="multipart/form-data">
  <input type="file" id="file1" NAME="file1" runat="server">
</form>
  注)Formタグ内のenctype="multipart/form-data"を書かないと動きません。

○VBコード
If Not Me.file1.PostedFile Is Nothing AndAlso Me.file1.PostedFile.ContentLength > 0 Then
  'ファイルの保存用のパスを指定
  Dim sFile As String = "C:\UpLoadFile\"
  Try
    sFile &= System.IO.Path.GetFileName(Me.file1.PostedFile.FileName)
    'ファイルの保存
    Me.file1.PostedFile.SaveAs(sFile)
  Catch ex As Exception
    'エラー時の処理
  End Try
End If

コメント (2)

ASP.NETでの「ファイルアップロード」には詰まりました。。
要件は「複数ファイルを一度でアップしたい」で、コントロールを複数個置いたりもしましたが別コントロールからのポストバックでせっかく指定したファイル名がクリアされる。。。
カスタムコントロールとかで回避できるんでしょうか??

ファイルアップロードはHtmlControlになるので、動的にコントロールする事は出来なかったかと…。
なので、一つファイルを選択するたびにアップロードしてしまって、そのアップロード先を格納フォルダではないTempなどに指定する。
正常系で処理が終了すればTempから格納先フォルダにFile.Moveで移動させ、異常系ならばTempからFile.Deleteで削除する。
これで要件に近い機能を実現できませんかね?

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

photo
ooya