Bagian ini menjelaskan dua metode yang digunakan di ASP.NET untuk mengunggah file ke halaman web.
ASP.NET menyertakan dua kontrol yang memungkinkan pengguna mengunggah file ke server web. Setelah server menerima data file yang diunggah, aplikasi dapat menyimpannya, memeriksanya, atau mengabaikannya. Kontrol berikutnya memungkinkan pengunggahan file:
HtmlInputFile - Kontrol server HTML
FileUpload - Kontrol web ASP.NET
Kedua kontrol mengizinkan pengunggahan file, namun kontrol FileUpload secara otomatis mengatur format pengkodean, sedangkan kontrol HtmlInputFile tidak.
Dalam tutorial ini, kita akan menggunakan kontrol FileUpload. Kontrol ini memungkinkan pengguna untuk melihat pratinjau file yang dipilih untuk diunggah. Kontrol ini menyediakan tombol pratinjau dan kotak teks tempat nama file dapat dimasukkan.
Setelah pengguna memasukkan nama file di kotak teks atau mempratinjau file, metode SaveAs dari kontrol FileUpload akan menyimpan file ke hard disk.
Sintaks dasar FileUpload adalah sebagai berikut:
<asp:FileUpload ID= "Uploader" runat = "server" />
Kelas FileUpload berasal dari kelas WebControl dan mewarisi semua elemennya. Kelas FileUpload memiliki properti read-only berikut:
milik | menggambarkan |
---|---|
FileBytes | Mengembalikan satu set bytecode untuk file yang akan diunggah |
Konten File | Mengembalikan objek aliran file yang akan diunggah |
Nama File | Mengembalikan nama file yang akan diunggah |
HasFile | Tentukan apakah kontrol memiliki file untuk diunggah |
File yang Diposting | Mengembalikan referensi ke file yang diunggah |
File yang dipublikasikan dienkapsulasi dalam objek berbentuk HttpPostedFile, yang dapat diakses melalui properti PostedFile kelas FileUpload.
Kelas HttpPostedFile memiliki properti yang umum digunakan berikut ini:
milik | menggambarkan |
---|---|
Panjang Konten | Mengembalikan ukuran byte file yang diunggah |
Tipe Konten | Mengembalikan tipe MIME dari file yang diunggah |
Nama File | Kembalikan nama lengkap file |
Aliran Masukan | Mengembalikan objek aliran file yang akan diunggah |
Contoh berikut mengilustrasikan kontrol FileUpload dan propertinya. Formulir ini memiliki kontrol FileUpload serta tombol simpan dan kontrol label dengan nama, jenis, dan panjang file sebenarnya.
Dalam mode desain, tabelnya terlihat seperti ini:
Kode file yang relevan tercantum di bawah ini:
<body> <form id="form1" runat="server"> <div> <h3> File Upload:</h3> <br /> <asp:FileUpload ID="FileUpload1" runat="server" /> <br /><br /> <asp:Button ID="btnsave" runat="server" onclick="btnsave_Click" Text="Save" /> <br /><br /> <asp:Label ID="lblmessage" runat="server" /> </div> </form></body>
Kode untuk tombol simpan tercantum di bawah ini:
protected void btnsave_Click(object sender, EventArgs e){ StringBuilder sb = new StringBuilder(); if (FileUpload1.HasFile) { try { sb.AppendFormat(" Uploading file: {0}", FileUpload1.FileName); //saving the file FileUpload1.SaveAs("<c:\SaveDirectory>" + FileUpload1.FileName); //Showing the file information sb.AppendFormat("<br/> Save As: {0}", FileUpload1.PostedFile.FileName); sb.AppendFormat("<br/> File type: {0}", FileUpload1.PostedFile.ContentType); sb.AppendFormat("<br/> File length: {0}", FileUpload1.PostedFile.ContentLength); sb.AppendFormat("<br/> File name: {0}", FileUpload1.PostedFile.FileName); }catch (Exception ex) { sb.Append("<br/> Error <br/>"); sb.AppendFormat("Unable to save file <br/> {0}", ex.Message); } } else { lblmessage.Text = sb.ToString(); }}
Perhatikan permasalahan berikut ini:
Kelas StringBuilder dihasilkan dari namespace System.IO, sehingga harus disertakan.
Area coba dan tangkap digunakan untuk menangkap kesalahan dan menampilkan pesan kesalahan.