Элемент управления FileUpload
Формы HTML позволяют загружать пользовательские файлы на сервер. Для этого нужно установить атрибут enctype как "multipart/form-data" и в нем должен находиться элемент <input type="file">. Элемент управления FileUpload облегчает эту работу. Нужно вставить его в форму, а enctype установится автоматически. Элемент состоит из строки ввода и кнопки с надписью Browse. Процесс загрузки начинается после подачи формы на сервер, обычно для этого вставляют еще одну кнопку:
<form id="form1" runat="server"> <div> <asp:FileUpload ID="FileUpload1" runat="server" /><br> <asp:Button ID="UploadButton" runat="server" Text="Button" OnClick="UploadButton_Click" /><br><br> <asp:Label ID="Message" runat="server" Text="Label" BackColor="#FFC0C0" Width="354px"></asp:Label> </div> </form>
После того как файл загружен, FileUpload позволяет узнать его свойства. Файл находится в кэше сервера, пока не будет сохранен на диск методом SaveAs:
protected void UploadButton_Click(object sender, EventArgs e) { if (this.FileUpload1.HasFile) { try { FileUpload1.SaveAs("c:\\Uploads\\" + FileUpload1.FileName); Message.Text = "Имя файла: " + FileUpload1.PostedFile.FileName + "<br>" + FileUpload1.PostedFile.ContentLength + " кб<br>" + "Content type: " + FileUpload1.PostedFile.ContentType; } catch (Exception ex) { Message.Text = "Ошибка: " + ex.Message.ToString(); } } }
Процесс сохранения может вызвать исключения, поэтому он заключен в блок try-catch.
Свойство PostedFile имеет тип HttpPostedFile. Можно перенаправить содержимое загруженного файла в файловый поток с помощью свойства InputStream.