PDA

View Full Version : سوال: آپلود نمودن عکس در c#



starwold
پنج شنبه 30 شهریور 1391, 12:52 عصر
سلام به دوستان

میخواستم از شما اگه میتوانید برای آپلود نمودن عکس و ذخیره کردن در دیتا بیس کد سی شارپشو در محیط code behind در asp.net برامون بزارید یا لینکی که در این مورد کمکمون کنه ممنون

Y_Safaiee
پنج شنبه 30 شهریور 1391, 13:22 عصر
با سلام خدمت شما دوست عزیز

کد پایه این کار اینه و براتون سمپل کدشو قرار میدم.

اول تو سورس صفحه باید یک کنترل برای Browse کردن تعریف کنید اینطوری :


<input id="File1" type="file" runat = "server" />


بعد برای کار با اون اینطوری باید کدنویسی کرد.


protected void Button2_Click(object sender, EventArgs e)
{
try
{

string filename = File1.PostedFile.FileName;
SqlDataSource1.InsertCommand = "insert into files values(N'" + filename + "')";
SqlDataSource1.Insert();
Server.Transfer("BasicPanel.aspx");
}
catch
{
}
}


اگه میخواین کلا پسوند و فایل و ... بدست بیاد این کدشه :


protected void Button2_Click(object sender, EventArgs e)
{
try
{
string filename = File1.PostedFile.FileName;

//########################## بدست آوردن پسوند فایل
string extension = filename.Substring(filename.Length - 4, 1);
if (extension == ".") extension = filename.Substring(filename.Length - 3, 3);
else extension = filename.Substring(filename.Length - 4, 4);

//##################################خواندن فایل
byte[] ar = new byte[File1.PostedFile.InputStream.Length];
File1.PostedFile.InputStream.Read(ar, 0, (int)File1.PostedFile.InputStream.Length);

//########################تعیین مسیر و نوشتن فایل
string path = MapPath("Upload/" + extension + "/" + File1.PostedFile.FileName);
Directory.CreateDirectory(MapPath("Upload/" + extension));
FileStream fs = new FileStream(path, FileMode.Create);
fs.Write(ar, 0, (int)ar.Length);
fs.Close();

//######################## ذخیره مسیر در دیتابیس
SqlDataSource1.InsertCommand = "insert into files values(N'" + File1.PostedFile.FileName + "',N'" + TextBox1.Text + "',N'" + date + "',N'" + extension + "',0)";
SqlDataSource1.Insert();
Server.Transfer("BasicPanel.aspx");

}
catch
{
}
}


اگه میخواین عکس ذخیره شه نه مسیر عکس یه فیلد از نوع Image بسازید و بعد اینکه عکس رو خوندید و داخل آرایه قرار دادید داخل دیتابیس Insert کنید.

موفق باشین
بایت بایت

starwold
پنج شنبه 30 شهریور 1391, 14:31 عصر
ممنون و متشکر از شما
ولی برنامه ی من به دیتا بیس وصل نمی شود حتی connectionstrring در web.config مینویسم ودر برنامه نمونه میسازم از دیتا بیس بازم وصل نمیشود
شما میتونید سورس کامل اتصال به دیتا بیس رو برام بزارید ممنون میشم

Y_Safaiee
پنج شنبه 30 شهریور 1391, 19:14 عصر
با سلام مجدد

کد آپلود عکس رو براتون میزارم , فایل سمپلشم براتون ضمیمه کردم

نمایش عکس با خودتون (بازی با datatable إ )



using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
SqlConnection cnn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Database.mdf;Integrated Security=True;User Instance=True");
SqlCommand cmd = new SqlCommand();
protected void Button2_Click(object sender, EventArgs e)
{
if (Browse.PostedFile.FileName != "")
{
byte[] ar=new byte[Browse.PostedFile.InputStream.Length];
Browse.PostedFile.InputStream.Read(ar,0,(int) Browse.PostedFile.InputStream.Length);
cnn.Open();
cmd.Connection = cnn;
cmd.CommandText = "insert into Images values(@f1)";
cmd.Parameters.AddWithValue("f1", ar);
cmd.ExecuteNonQuery();
cnn.Close();
}
}
}


موفق باشین
بایت بایت

93157

z_software
شنبه 02 دی 1391, 11:16 صبح
با سلام مجدد

کد آپلود عکس رو براتون میزارم , فایل سمپلشم براتون ضمیمه کردم

نمایش عکس با خودتون (بازی با datatable إ )



using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
SqlConnection cnn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Database.mdf;Integrated Security=True;User Instance=True");
SqlCommand cmd = new SqlCommand();
protected void Button2_Click(object sender, EventArgs e)
{
if (Browse.PostedFile.FileName != "")
{
byte[] ar=new byte[Browse.PostedFile.InputStream.Length];
Browse.PostedFile.InputStream.Read(ar,0,(int) Browse.PostedFile.InputStream.Length);
cnn.Open();
cmd.Connection = cnn;
cmd.CommandText = "insert into Images values(@f1)";
cmd.Parameters.AddWithValue("f1", ar);
cmd.ExecuteNonQuery();
cnn.Close();
}
}
}


موفق باشین
بایت بایت

93157

سلام دوستان ،
ببخشید بچه ها من فایل آپلودم رو تو PostBack میسازم، بهش دسترسی ندارم، آدرسش رو تو بانک ذخیره میکنم، ولی تو پوشه تو قسمت دایرکتوری که میخوام خود فایل رو ذخیره کنم نمیدونم باید چی کار کنم، من همیشه از SaveAs فایل آپلود استفاده میکردم، الان ممنون میشم اگه کسی بلد باشه و راهنماییم کنه ،. با فایل استریم کار کردم فقط اسمش رو برام ذخیره میکنه ولی مثلا عکس رو برام باز نمیکنه.


با تشکر فراوان.