PDA

View Full Version : مبتدی: مشکل هنگام دریافت عکس از کاربر



parva-88
جمعه 27 مرداد 1391, 17:16 عصر
imgFileName = DropDownList2.SelectedValue.ToString()+"/"+FileUpload1.FileName;
if ((System.IO.Path.GetExtension(imgFileName) == ".jpg") || (System.IO.Path.GetExtension(imgFileName) == ".jpeg") || (System.IO.Path.GetExtension(imgFileName) == ".bmp") || (System.IO.Path.GetExtension(imgFileName) == ".gif") || (System.IO.Path.GetExtension(imgFileName) == ".ico") || (System.IO.Path.GetExtension(imgFileName) == ".png"))
{
string sql_insert = "INSERT INTO Product (GroupName , ProdName , ProdId , ProdCompany , ProdCost , ProdComment , ProdPic , " +
") values ('" + DropDownList1.SelectedValue.ToString() +"' , '"+ TextBox3.Text + "' , '" + TextBox2.Text + "' , " +
"'" + TextBox4.Text + "' , '" + TextBox6.Text + "' , '" + TextBox7.Text + "' , '" + "' ,'"+imgFileName +"')";
SqlCommand command = new SqlCommand(sql_insert , conn);
conn.Open();
command.ExecuteNonQuery();
conn.Close();

FileUpload1.SaveAs(Server.MapPath("Prod/") + imgFileName);

LMsg.Text = "كتاب مورد نظر با موفقيت در قفسه انتخاب شده درج گرديد !";
TextBox2.Text = "";
TextBox3.Text = "";
TextBox4.Text = "";
TextBox6.Text = "";
TextBox7.Text = "";
}

دوستان من این کدی که نوشتم برا asp و دریلفت عکس از کاربر وقت اجرا خطایی که میده اینه :
incorrect syntax near ')' دوستان کسی میدونه مشکلش چیه؟ لطفا کمککککککککک:ناراحت:

h_r_sh
جمعه 27 مرداد 1391, 18:25 عصر
مشکل اینجاست:

string sql_insert = "INSERT INTO Product (GroupName , ProdName , ProdId , ProdCompany , ProdCost , ProdComment , ProdPic " +
") values ('" + DropDownList1.SelectedValue.ToString() + "' , '" + TextBox3.Text + "' , '" + TextBox2.Text + "' , " +
"'" + TextBox4.Text + "' , '" + TextBox6.Text + "' , '" + TextBox7.Text + "' , '" + "' ,'" + imgFileName + "')";

یک , اضافه!!!!!!!!!
ولی روشی که شما برای ثبت اطلاعات در نظر گرفتید، بالقوه خطر SQL Injection attack داره. بهتره از پارامترها استفاده کنید.
http://en.wikipedia.org/wiki/SQL_injection


SqlConnection conn = new SqlConnection();
string strCommand = "INSERT INTO Product (GroupName, ProdName, ProdId, ProdCompany, ProdComment, ProdCost, ProdPic)" +
" VALUES (@GroupName, @ProdName, @ProdId, @ProdCompany, @ProdComment, @ProdCost, @ProdPic)";
SqlCommand command = new SqlCommand();
command.Connection = conn;
command.Parameters.AddWithValue("@GroupName", DropDownList1.SelectedValue.ToString());
command.Parameters.AddWithValue("@ProdName", TextBox3.Text);
command.Parameters.AddWithValue("@ProdId", TextBox2.Text);
command.Parameters.AddWithValue("@ProdCompany", TextBox4.Text);
command.Parameters.AddWithValue("@ProdComment", TextBox6.Text);
command.Parameters.AddWithValue("@ProdCost", TextBox7.Text);
command.Parameters.AddWithValue("@ProdPic", imgFileName);
command.CommandText = strCommand;
conn.Open();
command.ExecuteNonQuery();
conn.Close();


و اگر از StoredProcedures استفاده کنید، که دیگه بهتر.
ضمنا، در این تکه کد، فقط ظاهرا آدرس تصویر ذخیره می شود. فکر کنم باید برای ذخیره خود فایل تصویر هم یه فکری بکنید.

parva-88
شنبه 28 مرداد 1391, 12:23 عصر
خوب همون فایل تصویری رو چطور میشه ذخیره کرد؟ من روش خیلی کار کردم ولی به نتیجه ای نرسیدم .

h_r_sh
شنبه 28 مرداد 1391, 13:34 عصر
برای ذخیره عکس راه های مختلفی وجود داره:
- شما می تونید فایل تصویر رو در یک پوشه Upload کنید و مسیر تصویر رو در Database ذخیره کنید.
-شما می تونید کل تصویر رو در Database ذخیره کنید.
-برای مشاهده عکس، هم می تونید از GenericHandler استفاده کنید و هم از کنترل Image .

mehrzad_ali
شنبه 28 مرداد 1391, 19:28 عصر
دانلود کنید. کاملترین برنامه آپلود عکس که شامل ... (http://barnamenevis.org/showthread.php?278138-%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF-%DA%A9%D9%86%DB%8C%D8%AF.-%DA%A9%D8%A7%D9%85%D9%84%D8%AA%D8%B1%DB%8C%D9%86-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D8%A2%D9%BE%D9%84%D9%88%D8%AF-%D8%B9%DA%A9%D8%B3-%DA%A9%D9%87-%D8%B4%D8%A7%D9%85%D9%84-...)