Asp.Net File Upload (Dosya yükleme) işlemleri
Asp.Net' te server tarafına ya da dosyalarımızın bulunduğu dizene file upload yani dosya yükleme işlemleri nasıl yapılıyormuş, bugün onu görelim.
Yeni Bir proje oluşturalım.Projemizin Adı dosya_yukle siz tabi başka isimde seçebilirsiniz.
Proje dosyalarımızın olduğu klasöre dosya yükleyeceğimiz klasör için Yüklenenler adında yeni bir klasör oluşturmayı unutmayın. Bu arada kodlama asp.net 4 te dil olarak visual basic' dir.
Daha sonra da aşağıdaki kodları html tagından sonra yazın.
<script runat="server">
Protected Sub UploadButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim saveDir As String = Server.MapPath("~/Yüklenenler/")
If (FileUpload1.HasFile) Then
Dim savePath As String = saveDir + _
Server.HtmlEncode(FileUpload1.FileName)
FileUpload1.SaveAs(savePath)
' buraya kadar herşey normal ise yüklenir...
UploadStatusLabel.Text = FileUpload1.FileName & " Adlı Dosya Yüklendi..."
Else
' Dosyanın, yüklenemediğini kullanıcıya bildirir..
UploadStatusLabel.Text = "Yüklemek için bir dosya seçmelisiniz.."
End If
End Sub
</script>
Son olarak da form1 tagı arasına bu kodları yapıştırın.
<div><h4>Yüklenecek Dosyaları Seçiniz:</h4>
<asp:FileUpload id="FileUpload1" runat="server" Width="218px"></asp:FileUpload><br/><br/>
<asp:Button id="UploadButton" Text="Yükle" OnClick="UploadButton_Click" runat="server"></asp:Button><hr />
<asp:Label id="UploadStatusLabel"
runat="server" Font-Bold="True" Font-Size="Medium" ForeColor="#FF3300"></asp:Label>
</div>
Resimde gördüğüz gibi dosya yükleme işlemimiz başarılı bir şekilde yüklendi.
Ancak siz sadece bir kaç dosya formatında yüklenmesini istiyorsunuz. Yani sadece jpeg resim dosyası ya da sıkıştırılmış dosya yüklenmesini istiyorsanız. Yapmanız gereken sadece aşağıdaki kodu html tagından sonra yapıştırın form1 tagının arasındakiler zaten aynı.
<script runat="server">
Protected Sub UploadButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim savePath As String = Server.MapPath("~/Yüklenenler/")
If (FileUpload1.HasFile) Then
Dim fileName As String = Server.HtmlEncode(FileUpload1.FileName)
Dim extension As String = System.IO.Path.GetExtension(fileName)
' yüklenebilecek dosya çeşidini belirliyoruz.
If (extension = ".jpeg") Or (extension = ".rar") Then
savePath += fileName
FileUpload1.SaveAs(savePath)
' buraya kadar herşey normal ise yüklenir...
UploadStatusLabel.Text = FileUpload1.FileName & " Adlı Dosya Yüklendi..."
Else
UploadStatusLabel.Text = "Dosya yüklenmedi. Çünkü ; dosya jpeg veya rar formatında değil..."
End If
Else
' Dosyanın, yüklenemediğini kullanıcıya bildirir..
UploadStatusLabel.Text = "Yüklemek için bir dosya seçmelisiniz.."
End If
End Sub
</script>
Bu file upload dosya yükleme işlemlerinden son olarak da dosya boyut sınırı belirlemekten bahsetmek istiyorum. Ben örnek olarak aşağıdaki kodlarda 3 Mb sınırlama getirdim. Siz tabiki kendinize göre değiştirebilirsiniz.
<script runat="server">
Protected Sub UploadButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim savePath As String = Server.MapPath("~/Yüklenenler/")
If (FileUpload1.HasFile) Then
Dim fileSize As Integer = FileUpload1.PostedFile.ContentLength
' dosyaya sınırlama getiriyoruz 3,100,000 bytes (dosya boyutu 3 MB geçemez.)3 MB altında ise yüklenir.Siz burada rakamı değiştirebilirsiniz.
If (fileSize < 3100000) Then
' Dosyayı kaydedeceği klasör ve dosyanın kendisi.
savePath += Server.HtmlEncode(FileUpload1.FileName)
FileUpload1.SaveAs(savePath)
' buraya kadar herşey normal ise yüklenir...
UploadStatusLabel.Text = FileUpload1.FileName & " Adlı Dosya Yüklendi..."
Else
' dosyanın boyutu belirlediğimiz boyuttan büyük ise alttaki hata mesajı kullanıcıya gösterilir.
UploadStatusLabel.Text = "Dosya Yüklenmedi Çünkü; " + _
"Yüklemek istediğin Dosyanın boyutu 3 MB dan fazla."
End If
Else
' Dosyanın, yüklenemediğini kullanıcıya bildirir..
UploadStatusLabel.Text = "Yüklemek için bir dosya seçmelisiniz.."
End If
End Sub
</script>
Kodlarımız bu kadar umarım faydalı olur...Bir daha ki yazımda görüşmek üzere.
Yorumlar
Yorum Gönder