newsoft
جمعه 22 مرداد 1389, 22:49 عصر
داخل سایت در این باره زیاد هست ولی من سعی دارم کامل ویه جا در موردش بگم
مراحل اول کد دریافت فایل و تبدیل به باینری
// آپلود پیوست
FileUpload peyvast = (FileUpload)peyvastUpload;
Byte[] peyvastByte = null;
string peyvast_name = null;
if (peyvast.HasFile && peyvast.PostedFile != null)
{
//To create a PostedFile
HttpPostedFile peyvastFile = peyvastUpload.PostedFile;
//Create byte Array with file len
peyvastByte = new Byte[peyvastFile.ContentLength];
//force the control to load data in array
peyvastFile.InputStream.Read(peyvastByte, 0, peyvastFile.ContentLength);
peyvast_name = peyvast.PostedFile.FileName.ToString();
string peyvastFileExtension = System.IO.Path.GetExtension(peyvast.PostedFile.Fil eName).ToLower();
if (!((peyvastFileExtension == ".rar") || (peyvastFileExtension == ".zip") || (peyvastFileExtension == ".doc") || (peyvastFileExtension == ".docx") || (peyvastFileExtension == ".pdf") || (peyvastFileExtension == ".xls") || (peyvastFileExtension == ".xlsx") || (peyvastFileExtension == ".ppt") || (peyvastFileExtension == ".pptx") || (peyvastFileExtension == ".jpg") || (peyvastFileExtension == ".gif") || (peyvastFileExtension == ".bmp") || (peyvastFileExtension == ".png")))
{
lbl_payam.Text = "فایل شما از نوع مجاز نمی باشد";
return;
}
int size = peyvast.PostedFile.ContentLength;
int max = 10*1024*1024;
if (size > max)
{
lbl_payam.Text = "حجم فایل شما بیش از 10 مگابایت می باشد";
return;
}
}
else
{
peyvastByte = new byte[0];
}
spclass.elamie_ersal(tbx_onvan.Text.ToString(), date.intDate.ToString(), date.charDate, DropDownList1.SelectedValue.ToString(), model, "0", tbx_matn.Text.ToString(), imgByte,peyvastByte,peyvast_name);
مرحله دوم کد کلاس
//ثبت اعلان
public static void elamie_ersal(string onvan, string intdate, string chardate, string id_mozo, string type_elamie, string hazf, string matn, byte[] pic, byte[] peyvast, string peyvast_name)
{
SqlConnection connection = new SqlConnection(connectionstring);
connection.Open();
SqlCommand command1 = new SqlCommand("elamie_ersal", connection);
command1.CommandType = CommandType.StoredProcedure;
command1.Parameters.AddWithValue("onvan", onvan);
command1.Parameters.AddWithValue("intdate", intdate);
command1.Parameters.AddWithValue("chardate", chardate);
command1.Parameters.AddWithValue("id_mozo", id_mozo);
command1.Parameters.AddWithValue("type_elamie", type_elamie);
command1.Parameters.AddWithValue("hazf", hazf);
command1.Parameters.AddWithValue("matn", matn);
command1.Parameters.AddWithValue("pic", pic);
command1.Parameters.AddWithValue("peyvast", peyvast);
command1.Parameters.AddWithValue("peyvast_name", peyvast_name);
command1.ExecuteScalar();
connection.Close();
}
مرحله بعدی sp
ALTER PROCEDURE dbo.elamie_ersal
(
@onvan nvarchar(200),
@intdate int,
@chardate nvarchar(10),
@type_elamie nvarchar(4),
@id_mozo nvarchar(4),
@hazf nvarchar(100),
@pic varbinary(max),
@peyvast varbinary(max),
@peyvast_name nvarchar(200),
@matn text
)
AS
INSERT INTO elamie
(onvan, intdate,chardate,id_mozo,type_elamie, hazf,pic)
VALUES (@onvan, @intdate,@chardate,@id_mozo, @type_elamie, @hazf,@pic)
INSERT INTO elamie_matn
(matn,peyvast,peyvast_name)
VALUES (@matn,@peyvast,@peyvast_name)
فیلد رو هم از نوع varbinary بگیرین
اینو داخل وبکانفنگ بزارین تا بیشتر از 4 مگ بشه آپ کرد
<httpRuntime
maxRequestLength="1048576"
executionTimeout="3600"
/>
درآخر یه صفحه جدید که قرار دانلود داخلش انجام بشه
protected void Page_Load(object sender, EventArgs e)
{
string empno = Request.QueryString["id"].ToString();
Response.AddHeader("content-disposition", "attachment;filename=" + spclass.elamie_peyvast_name(empno));
Stream strm = ShowEmpFile(empno);
BinaryReader r = new BinaryReader(strm);
byte[] b = new byte[r.BaseStream.Length];
r.Read(b, 0, b.Length);
r.Close();
Response.BinaryWrite(b);
Response.End();
}
public Stream ShowEmpFile(string id)
{
byte[] img = spclass.elamie_peyvast(id);
try
{
return new MemoryStream((byte[])img);
}
catch
{
return null;
}
}
}
کد داخل دکمه ای که دانلود کنه
protected void lbtn_download_Click(object sender, EventArgs e)
{
Response.Redirect( "~/Download.aspx?id=" + a_idd);
}
همین سه روز وقت منو گرفت البته امید وارم با گریدویو مشکل نداشته باشه
موفق باشید
مراحل اول کد دریافت فایل و تبدیل به باینری
// آپلود پیوست
FileUpload peyvast = (FileUpload)peyvastUpload;
Byte[] peyvastByte = null;
string peyvast_name = null;
if (peyvast.HasFile && peyvast.PostedFile != null)
{
//To create a PostedFile
HttpPostedFile peyvastFile = peyvastUpload.PostedFile;
//Create byte Array with file len
peyvastByte = new Byte[peyvastFile.ContentLength];
//force the control to load data in array
peyvastFile.InputStream.Read(peyvastByte, 0, peyvastFile.ContentLength);
peyvast_name = peyvast.PostedFile.FileName.ToString();
string peyvastFileExtension = System.IO.Path.GetExtension(peyvast.PostedFile.Fil eName).ToLower();
if (!((peyvastFileExtension == ".rar") || (peyvastFileExtension == ".zip") || (peyvastFileExtension == ".doc") || (peyvastFileExtension == ".docx") || (peyvastFileExtension == ".pdf") || (peyvastFileExtension == ".xls") || (peyvastFileExtension == ".xlsx") || (peyvastFileExtension == ".ppt") || (peyvastFileExtension == ".pptx") || (peyvastFileExtension == ".jpg") || (peyvastFileExtension == ".gif") || (peyvastFileExtension == ".bmp") || (peyvastFileExtension == ".png")))
{
lbl_payam.Text = "فایل شما از نوع مجاز نمی باشد";
return;
}
int size = peyvast.PostedFile.ContentLength;
int max = 10*1024*1024;
if (size > max)
{
lbl_payam.Text = "حجم فایل شما بیش از 10 مگابایت می باشد";
return;
}
}
else
{
peyvastByte = new byte[0];
}
spclass.elamie_ersal(tbx_onvan.Text.ToString(), date.intDate.ToString(), date.charDate, DropDownList1.SelectedValue.ToString(), model, "0", tbx_matn.Text.ToString(), imgByte,peyvastByte,peyvast_name);
مرحله دوم کد کلاس
//ثبت اعلان
public static void elamie_ersal(string onvan, string intdate, string chardate, string id_mozo, string type_elamie, string hazf, string matn, byte[] pic, byte[] peyvast, string peyvast_name)
{
SqlConnection connection = new SqlConnection(connectionstring);
connection.Open();
SqlCommand command1 = new SqlCommand("elamie_ersal", connection);
command1.CommandType = CommandType.StoredProcedure;
command1.Parameters.AddWithValue("onvan", onvan);
command1.Parameters.AddWithValue("intdate", intdate);
command1.Parameters.AddWithValue("chardate", chardate);
command1.Parameters.AddWithValue("id_mozo", id_mozo);
command1.Parameters.AddWithValue("type_elamie", type_elamie);
command1.Parameters.AddWithValue("hazf", hazf);
command1.Parameters.AddWithValue("matn", matn);
command1.Parameters.AddWithValue("pic", pic);
command1.Parameters.AddWithValue("peyvast", peyvast);
command1.Parameters.AddWithValue("peyvast_name", peyvast_name);
command1.ExecuteScalar();
connection.Close();
}
مرحله بعدی sp
ALTER PROCEDURE dbo.elamie_ersal
(
@onvan nvarchar(200),
@intdate int,
@chardate nvarchar(10),
@type_elamie nvarchar(4),
@id_mozo nvarchar(4),
@hazf nvarchar(100),
@pic varbinary(max),
@peyvast varbinary(max),
@peyvast_name nvarchar(200),
@matn text
)
AS
INSERT INTO elamie
(onvan, intdate,chardate,id_mozo,type_elamie, hazf,pic)
VALUES (@onvan, @intdate,@chardate,@id_mozo, @type_elamie, @hazf,@pic)
INSERT INTO elamie_matn
(matn,peyvast,peyvast_name)
VALUES (@matn,@peyvast,@peyvast_name)
فیلد رو هم از نوع varbinary بگیرین
اینو داخل وبکانفنگ بزارین تا بیشتر از 4 مگ بشه آپ کرد
<httpRuntime
maxRequestLength="1048576"
executionTimeout="3600"
/>
درآخر یه صفحه جدید که قرار دانلود داخلش انجام بشه
protected void Page_Load(object sender, EventArgs e)
{
string empno = Request.QueryString["id"].ToString();
Response.AddHeader("content-disposition", "attachment;filename=" + spclass.elamie_peyvast_name(empno));
Stream strm = ShowEmpFile(empno);
BinaryReader r = new BinaryReader(strm);
byte[] b = new byte[r.BaseStream.Length];
r.Read(b, 0, b.Length);
r.Close();
Response.BinaryWrite(b);
Response.End();
}
public Stream ShowEmpFile(string id)
{
byte[] img = spclass.elamie_peyvast(id);
try
{
return new MemoryStream((byte[])img);
}
catch
{
return null;
}
}
}
کد داخل دکمه ای که دانلود کنه
protected void lbtn_download_Click(object sender, EventArgs e)
{
Response.Redirect( "~/Download.aspx?id=" + a_idd);
}
همین سه روز وقت منو گرفت البته امید وارم با گریدویو مشکل نداشته باشه
موفق باشید