PDA

View Full Version : لود عکس یک پوشه قبل ( دیتا گرید )



dr.pantagon
دوشنبه 04 شهریور 1387, 07:42 صبح
سلام
من می خواستم یک سری عکس رو که لینکشون تو دیتابیس است رو لود کنم
در حالت عادی با لودشون تو دیتا گرید مشکل ندارم
حالت عادی منظور این است که مثل فایل
image.aspx
تو روت فولدر باشه و عکس ها هم در پوشه
image/upload/1.jpg
باشه
حالا من باید فایل
image.aspx
رو ببرم توی پوشه یعنی از روت خارج می شه
admin/image.aspx
خوب حالا چه طوری بفهمونم به دیتا گرید که وقتی می خواد اطلاعات رو بایند کنه لینک هایی که از دیبی می خونه رو
اولش یک

../
بزاره
یعنی اینجوری بشه

../image/upload/1.jpg
که یک پوشه بر گرده عقب و مسیرش رو از اونجا بخونه ؟
من برای بارگزاری اطلاعات از

DataBinder.Eval(Container, "DataItem.path")
استفاده می کنم

kezack
دوشنبه 04 شهریور 1387, 11:27 صبح
عزيز ميشه واضح تربكي من همين كارو كردم مشكلي نداشتم فكر كنم لينكشو درست كني مشكل نخواهي داشت اينو ببين


SqlConnection con = new SqlConnection(System.Configuration.ConfigurationMa nager.AppSettings["ConnectionString"]);
if (FileUpload1.HasFile)
{
int s = FileUpload1.FileName.LastIndexOf('.');
string type = FileUpload1.FileName.Substring(s);
string name = FileUpload1.FileName.Substring(0, s);
bindname(name, name, type);
if (File.Exists(MapPath("Photo Galleries\\") + name + type))
{
name = name + "(" + i + ")";
bindname(name, name, type);
FileUpload1.SaveAs(Server.MapPath("~/Photo Galleries/") + name + type);
}
else
{
FileUpload1.SaveAs(Server.MapPath("~/Photo Galleries/") + name + type);
}
SqlCommand cmd = new SqlCommand("Insert Into ImageGallary(Scr,Date,Show)Values(@Scr,@Date,@Show );SELECT SCOPE_IDENTITY()");
cmd.Parameters.Add("@Show", SqlDbType.Bit).Value = false;
cmd.Parameters.Add("@Scr", SqlDbType.NVarChar, 50).Value = "~/Photo Galleries/" + name + type;
cmd.Parameters.Add("@Date", SqlDbType.NVarChar).Value = today.Weekday;
cmd.Connection = con;
con.Open();
string j = cmd.ExecuteScalar().ToString();
Image1.ImageUrl="~/Photo Galleries/" + name + type;
con.Close();
}
}
void bindname(string m, string n, string t)
{
if (File.Exists(MapPath("Photo Galleries\\") + m + t))
{
i++;
m = n + "(" + i + ")";
bindname(m, n, t);
}
else
{
FileUpload1.PostedFile.SaveAs(MapPath("~/Photo Galleries/") + m + t);
}
}

kezack
دوشنبه 04 شهریور 1387, 11:31 صبح
حالا كافي توي دیتا گرید يك imag بزاري و اونو از اونجا بخوني


<asp:Image ID="Image1" runat="server" Height="100px" ImageUrl='<%# DataBinder.Eval(Container.DataItem,"Scr") %>'
Width="152px" />

اميدوارم بدردت بخوره

mr_mtc
دوشنبه 04 شهریور 1387, 13:49 عصر
من برای بارگزاری اطلاعات از

DataBinder.Eval(Container, "DataItem.path")
استفاده می کنم


فقط كافيه به اين شكل كدت رو بنويسي:

DataBinder.Eval(Container, "DataItem.path", "~/{0}")

dr.pantagon
سه شنبه 05 شهریور 1387, 10:19 صبح
فقط كافيه به اين شكل كدت رو بنويسي:

DataBinder.Eval(Container, "DataItem.path", "~/{0}")

این اون روشی بود که دنبالش بود دستت درد نکنه تستش می کنم خبرش رو میدم
قبلا خودم اینجوری نوشته بودم