Tips SistemThis article applies to a different operating system than the one you are using. Article content that may not be relevant to you is disabled.
Artikel ini selangkah demi selangkah menjelaskan bagaimana untuk meng-upload file ke
Sebuah Web server dengan menggunakan Visual C#.NET. Dalam artikel ini, Anda membuat Microsoft
ASP.NET file (WebForm1.aspx) dan yang terkait kode-file di belakang
(WebForm1.aspx.cs) untuk meng-upload file ke direktori yang bernama
Data.
Di Microsoft Visual Studio.NET, ikuti langkah berikut untuk membuat
aplikasi baru untuk meng-upload file ke Web server:
Mulai Microsoft Visual Studio.NET.
Pada Berkas menu, titik Baru, lalu klik Project.
Dalam Proyek baru kotak dialog, klik Visual C# proyek di bawah Jenis proyek, lalu klik ASP.Aplikasi NET Web di bawah Pola acu.
Dalam Lokasi kotak, ketik URL untuk menciptakan proyek. Untuk contoh ini, jenishttp://localhost/CSharpUpload, yang menciptakan default
nama proyek CSharpUpload. Pemberitahuan bahwa berkas WebForm1.aspx beban dalam
Lihat desainer Visual Studio.NET.
Setelah membuat aplikasi, Anda membuat Data direktori
yang akan menerima upload file. Setelah Anda membuat direktori ini, Anda juga harus
menetapkan izin menulis ASPNET pekerja account.
Di jendela Explorer solusi Visual Studio.NET,
Klik kanan CSharpUpload, arahkan ke Tambahkan, lalu klik Folder baru. Secara default, folder baru yang diberi nama NewFolder1 adalah
dibuat.
Untuk mengubah nama folder untuk Data, klik kanan NewFolder1, klik Ubah nama, kemudian ketik Data.
Jalankan Windows Explorer, dan kemudian Cari Data file
sistem folder yang Anda buat di langkah ke 2. Secara default, folder ini terletak di
map berikut:
C:\Inetpub\wwwroot\CSharpUpload\Data
Untuk mengubah keamanan pengaturan untuk memberikan menulis izin
untuk Data direktori, klik kanan Data, lalu klik Properti.
Dalam Data properti kotak dialog, klik Keamanan tab, dan kemudian klik Tambahkan.
Dalam Pilih pengguna atau grup kotak dialog,
Klik ASPNET account, dan kemudian klik Tambahkan. Klik Oke untuk menutup Pilih pengguna atau grup dialog
kotak.
Klik (akun aspnet_wp)computername\ASPNET) rekening, dan kemudian klik untuk memilih Memungkinkan memeriksa kotak untuk ijin berikut:
Baca dan Eksekusi
Buat Daftar Isi Map
Baca
Menulis
Klik untuk mengosongkan lainnya Memungkinkan dan Menyangkal kotak centang.
Klik Oke untuk menutup Data properti kotak dialog. Anda telah berhasil diubah Data direktori
izin untuk menerima pengguna upload file.
Tekan ENTER untuk menambahkan baris kosong, dan kemudian tambahkan berikut
kode:
if( ( File1.PostedFile != null ) && ( File1.PostedFile.ContentLength > 0 ) )
{
string fn = System.IO.Path.GetFileName(File1.PostedFile.FileName);
string SaveLocation = Server.MapPath("Data") + "\\" + fn;
try
{
File1.PostedFile.SaveAs(SaveLocation);
Response.Write("The file has been uploaded.");
}
catch ( Exception ex )
{
Response.Write("Error: " + ex.Message);
//Note: Exception.Message returns a detailed message that describes the current exception.
//For security reasons, we do not recommend that you return Exception.Message to end users in
//production environments. It would be better to put a generic error message.
}
}
else
{
Response.Write("Please select a file to upload.");
}
Kode ini pertama memverifikasi bahwa file yang telah di-upload. Jika tidak ada file
dipilih, Anda menerima pesan "Pilih file untuk di upload". Jika yang berlaku
file di-upload, nama file yang diambil dengan menggunakan System.io namespace, dan tujuannya adalah berkumpul di SaveAs jalan. Setelah tujuan akhir dikenal, berkas disimpan oleh
menggunakan File1.PostedFile.SaveAs metode. Ada pengecualian terjebak, dan pesan pengecualian
ditampilkan pada layar.
Memverifikasi bahwa Submit1 subrutin muncul sebagai berikut:
private void Submit1_ServerClick(object sender, System.EventArgs e)
{
if( ( File1.PostedFile != null ) && ( File1.PostedFile.ContentLength > 0 ) )
{
string fn = System.IO.Path.GetFileName(File1.PostedFile.FileName);
string SaveLocation = Server.MapPath("Data") + "\\" + fn;
try
{
File1.PostedFile.SaveAs(SaveLocation);
Response.Write("The file has been uploaded.");
}
catch ( Exception ex )
{
Response.Write("Error: " + ex.Message);
//Note: Exception.Message returns detailed message that describes the current exception.
//For security reasons, we do not recommend you return Exception.Message to end users in
//production environments. It would be better just to put a generic error message.
}
}
else
{
Response.Write("Please select a file to upload.");
}
}
Secara default, ASP.NET hanya mengizinkan file yang kilobyte 4,096
(KB) (atau 4 MB) atau kurang untuk di-upload ke Web server. Untuk meng-upload lebih besar
file, Anda harus mengubah maxRequestLength parameter <httpruntime></httpruntime> bagian dalam Web.config file.
Catatan Ketika maxRequestLength atribut diatur dalam Machine.config elemen dari file dan kemudian permintaan
Dikirim (misalnya, sebuah file upload) yang melebihi nilai dari maxRequestLength, halaman kesalahan kustom tidak ditampilkan. Sebaliknya, Microsoft
Internet Explorer akan menampilkan kesalahan "Tidak dapat menemukan server atau DNS"
kepada kami.
Jika Anda ingin mengubah pengaturan ini untuk semua komputer
dan bukan hanya ASP ini.NET aplikasi, Anda harus memodifikasi Machine.config elemen dari
file.
Secara default, <httpruntime></httpruntime> elemen diatur ke parameter berikut di Machine.config elemen dari
berkas:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace CSharpUpload
{
/// <summary>
/// Summary description for WebForm1.
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.HtmlControls.HtmlInputFile File1;
protected System.Web.UI.HtmlControls.HtmlInputButton Submit1;
private void Page_Load(object sender, System.EventArgs e)
{
// Put user code to initialize the page here
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.Submit1.ServerClick += new System.EventHandler(this.Submit1_ServerClick);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void Submit1_ServerClick(object sender, System.EventArgs e)
{
if( ( File1.PostedFile != null ) && ( File1.PostedFile.ContentLength > 0 ) )
{
string fn = System.IO.Path.GetFileName(File1.PostedFile.FileName);
string SaveLocation = Server.MapPath("Data") + "\\" + fn;
try
{
File1.PostedFile.SaveAs(SaveLocation);
Response.Write("The file has been uploaded.");
}
catch ( Exception ex )
{
Response.Write("Error: " + ex.Message);
//Note: Exception.Message returns a detailed message that describes the current exception.
//For security reasons, we do not recommend that you return Exception.Message to end users in
//production environments. It would be better to return a generic error message.
}
}
else
{
Response.Write("Please select a file to upload.");
}
}
}
}
Secara teoritis, ukuran berkas maksimum meng-upload cukup besar.
Namun, karena dari ASP.Pemantauan kesehatan bersih, Anda tidak bisa upload sangat besar
file dalam ASP.NET. ASP.NET pekerja proses memiliki ruang alamat virtual 2
gigabyte (GB). Namun, ASP.NET pekerja proses hanya menggunakan sedikit lebih
dari 1 GB karena kesehatan pemantauan dan memori fragmentasi.
Selama proses upload, ASP.NET load file seluruh dalam memori
sebelum pengguna dapat menyimpan file ke disk. Oleh karena itu, proses mungkin
mendaur ulang karena memoryLimit atribut processModel Tag di Machine.config elemen dari file. The memoryLimit atribut menentukan persentase memori fisik yang
ASP.NET pekerja proses dapat knalpot sebelum proses secara otomatis
daur ulang. Daur ulang mencegah kebocoran memori menyebabkan ASP.NET untuk kecelakaan atau untuk
berhenti merespons.
Selain itu, faktor lain yang berperan dalam
ukuran berkas maksimum yang dapat di-upload. Faktor-faktor ini termasuk memori yang tersedia,
ruang hard disk, kecepatan prosesor dan lalu-lintas jaringan saat ini. Dengan
lalu-lintas biasa file sedang diupload, Microsoft menyarankan agar Anda menggunakan
ukuran berkas maksimum dalam kisaran 10-20 megabyte (MB). Jika Anda jarang upload
file, ukuran berkas maksimum mungkin 100 MB.
Catatan Anda dapat meng-upload file yang lebih besar dari 100 MB di ASP.NET.
Namun, Microsoft menganjurkan bahwa Anda mengikuti ukuran berkas maksimum meng-upload
yang disebutkan dalam artikel ini. Untuk menentukan ukuran file yang lebih tepat,
melakukan stres pengujian pada komputer yang mirip dengan orang-orang yang akan
digunakan dalam produksi.
Anda mungkin akan melihat pesan kesalahan berikut jika
Anda menemukan batas ukuran file selama proses upload file:
Halaman tidak dapat
ditampilkan.
Aplikasi server adalah
Tidak tersedia
Log peristiwa, pesan kesalahan akan mirip dengan
berikut:
aspnet_wp.exe
(PID:PIDNumber) adalah daur ulang karena memori
konsumsi melebihi SizeLimit MB
(Persentase persen dari tersedia
RAM).
Pengecualian jenis
System.OutOfMemoryException dilemparkan.
Anda mungkin juga menemukan bahwa upload terjadi sangat lambat. Jika Anda menonton
proses Aspnet_wp.exe pada Windows Task Manager, Anda akan melihat bahwa
memori delta perubahan oleh 64 KB setiap 1 hingga 2 detik. Tergantung pada ukuran
file, penundaan ini dapat menyebabkan ASP.NET pekerja proses untuk mendaur ulang karena
kesalahan responseDeadlock.
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:323246
(http://support.microsoft.com/kb/323246/en-us/
)
Seberapa besar usaha yang anda keluarkan dalam menggunakan artikel ini?
Sangat kecil
Kecil
Menengah
Besar
Sangat besar
Apa yang dapat kami lakukan untuk meningkatkan informasi ini?
Untuk melindungi privasi Anda, jangan menyertakan informasi kontak dalam umpan balik Anda.
Terima kasih! Umpan balik Anda akan digunakan untuk membantu meningkatkan konten dukungan kami. Untuk opsi-opsi bantuan lebih lanjut, kunjungi Halaman Muka Bantuan dan Dukungan.