آپلود و دانلود فایل درASP.NET
سه شنبه 2 شهریور 1395در این مقاله قصد داریم نحوه آپلود فایل و باز کردن فایل درBrowser و نحوه دانلود فایل آپلود شده را مورد بررسی قرار دهیم.
در این مقاله ما میخواهیم در مورد چند مورد:
1-چگونگی آپلود فایل به همراه یک مثال تصویر
2-چگونگی باز کردن فایل در Browser
3-چگونگی دانلود فایل آپلود شده.
-بارگذاری یک فایل :(NewFriend.aspx)
در این صفحه، ما یک دوست جدید را مورد تایید و و به همراه یک عکس وارد میکنیم.
لیست دوستان:(FriendList.aspx)
ما میتوانیم بارگذاری و رسیدن فایل از طرف کاربر با کمک کنترل FileUpload را مشاهده کنیم.
ما باید اجازه upload را بدهیم که به نکته های زیر باید توجه کنیم:
1-بررسی کردن سایز فایل.ما میتوانیم سایز فایل را محدود بکنیم.
2-پسوند فایل.ما میتوانیم پسوند فایل را محدود بکنیم.
هنگامی که ما در حال ثبت فایل ارسالی کاربر هستیم اطلاعات اضافی فایل نظیر DateTime , UserID or Friend ID را هم دریافت میکنیم.
هنگامی که مدیر سایت عکس فولدر را مشاهده میکند اینجا، ما فقط image و View را روی یک پنجره ی جدید در Browser بارگذاری میکنیم.
<asp:TemplateField HeaderText="Photo">
<ItemTemplate>
<asp:Image ID="imgPicture" runat="server" ImageUrl='<%# Eval("FriendImage", "~/FriendPhoto/{0}") %>' Width="200px" />
</ItemTemplate>
</asp:TemplateField>
کد نمایش دادن در صفحه ی جدید: ViewImage.aspx
protected void btnView_Click(object sender, EventArgs e)
{
LinkButton lnkbtn = sender as LinkButton;
GridViewRow gvrow = lnkbtn.NamingContainer as GridViewRow;
string filePath = "~//FriendPhoto//" + gvFriend.DataKeys[gvrow.RowIndex].Value.ToString();
Response.Write(String.Format("<script>window.open('{0}','_blank');</script>", "viewImage.aspx?fn=" + filePath));
}
در GridView ما یک دکمه داریم به نام View.
کد دانلود عکس انتخاب شده:
protected void btnDownload_Click(object sender, EventArgs e)
{
Button btn = sender as Button;
GridViewRow gvrow = btn.NamingContainer as GridViewRow;
string filePath = "FriendPhoto\\"+gvFriend.DataKeys[gvrow.RowIndex].Value.ToString();
Response.ContentType = "image/jpg";
Response.AddHeader("Content-Disposition", "attachment;filename=\"" + filePath + "\"");
Response.TransmitFile(Server.MapPath(filePath));
Response.End();
}
-- درست کردن پروژه:
ساختن یک صفحه ی پروژه ASP.NET Empty Web Site به نام FileUploadAndViewAndDownload

-- اضافه کردن 3 صفحه ی Web Forms

-- اضافه کردن فولدر جدید به نام FRIENDPHOTO.
--Web.Config
بروزرسانی Web.Config با sql server
<connectionStrings> <add name="fileuploadConnectionString" connectionString="Data Source=192.168.1.50\sa;Initial Catalog=mbktest;Persist Security Info=True;User ID=sa;Password=clserver" providerName="System.Data.SqlClient"/> </connectionStrings>
کد FriendList.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="FriendList.aspx.cs" Inherits="FriendList" EnableEventValidation="true" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<a href="NewFriend.aspx">Insert An New Friend</a>
<asp:GridView ID="gvFriend" DataKeyNames="FriendImage" runat="server" AutoGenerateColumns="false" BackColor="#DEBA84" BorderColor="#DEBA84" BorderStyle="None" BorderWidth="1px" CellPadding="3" CellSpacing="2">
<FooterStyle BackColor="#F7DFB5" ForeColor="#8C4510" />
<HeaderStyle BackColor="#A55129" Font-Bold="True" ForeColor="White" />
<PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" />
<RowStyle BackColor="#FFF7E7" ForeColor="#8C4510" />
<SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="White" />
<SortedAscendingCellStyle BackColor="#FFF1D4" />
<SortedAscendingHeaderStyle BackColor="#B95C30" />
<SortedDescendingCellStyle BackColor="#F1E5CE" />
<SortedDescendingHeaderStyle BackColor="#93451F" />
<Columns>
<asp:BoundField DataField="FriendID" HeaderText="Friend ID"/>
<asp:BoundField DataField="Name" HeaderText="Friend Name"/>
<asp:BoundField DataField="Place" HeaderText="Place"/>
<asp:BoundField DataField="Mobile" HeaderText="Mobile Number"/>
<asp:TemplateField HeaderText="Photo">
<ItemTemplate>
<asp:Image ID="imgPicture" runat="server" ImageUrl='<%# Eval("FriendImage", "~/FriendPhoto/{0}") %>' Width="200px" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="View">
<ItemTemplate>
<asp:LinkButton ID="btnView" runat="server" Text="View" OnClick="btnView_Click" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Download">
<ItemTemplate>
<asp:Button ID="btnDownload" runat="server" Text="Download" OnClick="btnDownload_Click" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class FriendList : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGridView();
}
}
private void BindGridView()
{
string constr = ConfigurationManager.ConnectionStrings["fileuploadConnectionString"].ConnectionString;
SqlConnection con = new SqlConnection(constr);
SqlDataAdapter da = new SqlDataAdapter("Select * From tblFileUpload", con);
DataSet ds = new DataSet();
da.Fill(ds, "Friend");
gvFriend.DataSource = ds;
gvFriend.DataBind();
}
protected void btnView_Click(object sender, EventArgs e)
{
LinkButton lnkbtn = sender as LinkButton;
GridViewRow gvrow = lnkbtn.NamingContainer as GridViewRow;
string filePath = "~//FriendPhoto//" + gvFriend.DataKeys[gvrow.RowIndex].Value.ToString();
Response.Write(String.Format("<script>window.open('{0}','_blank');</script>", "viewImage.aspx?fn=" + filePath));
}
protected void btnDownload_Click(object sender, EventArgs e)
{
Button btn = sender as Button;
GridViewRow gvrow = btn.NamingContainer as GridViewRow;
string filePath = "FriendPhoto\\"+gvFriend.DataKeys[gvrow.RowIndex].Value.ToString();
Response.ContentType = "image/jpg";
Response.AddHeader("Content-Disposition", "attachment;filename=\"" + filePath + "\"");
Response.TransmitFile(Server.MapPath(filePath));
Response.End();
}
}
کد NewFriend.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="NewFriend.aspx.cs" Inherits="NewFriend" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h1>Friend Detail</h1>
<table>
<tr>
<td>
Name
</td>
<td>
<asp:TextBox ID="txtName" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>
Place
</td>
<td>
<asp:TextBox ID="txtPlace" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>
Mobile
</td>
<td>
<asp:TextBox ID="txtMobile" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>
Photo/Image
</td>
<td>
<asp:FileUpload ID="fuImage" runat="server" accept=".png,.PNG,.bmp,.BMP,.jpeg,.JPEG,.jpg,.JPG" ></asp:FileUpload>
</td>
</tr>
<tr>
<td>
<asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClick="btnSubmit_Click" />
</td>
<td>
<asp:Button ID="btnBack" runat="server" Text="Back" OnClick="btnBack_Click" PostBackUrl="~/FriendList.aspx" />
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.IO;
public partial class NewFriend : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
string filename = Path.GetFileName(fuImage.PostedFile.FileName);
string str = DateTime.Now.ToString("hhmmssffffff")+filename;
fuImage.SaveAs(Server.MapPath("FriendPhoto/"+str));
string constr = ConfigurationManager.ConnectionStrings["fileuploadConnectionString"].ConnectionString;
SqlConnection con = new SqlConnection(constr);
con.Open();
SqlCommand cmd = new SqlCommand("Insert into tblFileUpload (Name,Place,Mobile, FriendImage) Values(@Name,@Place,@Mobile,@FriendImage)", con);
cmd.Parameters.AddWithValue("@Name",txtName.Text);
cmd.Parameters.AddWithValue("@Place",txtPlace.Text);
cmd.Parameters.AddWithValue("@Mobile", txtMobile.Text);
cmd.Parameters.AddWithValue("@FriendImage", str);
cmd.ExecuteNonQuery();
cmd.Dispose();
con.Close();
Response.Redirect("~/FriendList.aspx");
}
}
کد ViewImage.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="viewImage.aspx.cs" Inherits="viewImage" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Image ID="Image1" runat="server" Height="408px" Width="649px" />
</div>
</form>
</body>
</html>
کد ViewImage.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class viewImage : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string FilePath = null;
FilePath = Request.QueryString["fn"];
if (FilePath != null)
{
string path = Server.MapPath(FilePath);
Image1.ImageUrl = FilePath;
}
}
}
خروجی :


- ASP.net
- 2k بازدید
- 3 تشکر