ورود

View Full Version : مسیر فیزیکی در هاست



rana-writes
شنبه 10 مهر 1389, 13:52 عصر
سلام
من توی سایتم گالری عکس دارم. یعنی کاربر این امکان رو داره که خودش یه پوشه برای گالری مورد نظرش بسازه و توش عکس بریزه
برای آدرس دهی به این شکل عمل کردم:


string FileName = Path.Combine(Server.MapPath("~/Gallery") + "\\" + Picreader["GalleryDir"].ToString() + "\\", PicName);

با Server.MapPath توی پوشه Gallery ، یه زیرپوشه که اینطوری خونده میشه:


Picreader["GalleryDir"].ToString()

ایجاد کردم و در نهایت هم نام عکس
حالا توی ایمیلی که از طرف هاست برای من اومده مسیر فیزیکی فایلها رو اینطوری بهم داده:
Drive:\HostingSpaces\MyDomain.ir\MyDomain.ir.\wwwr oot
یعنی من باید توی برنامه م، شیوه آدرس دهی رو عوض کنم؟
به چه شکل باید درش بیارم؟
از پشتیبان که پرسیدم، توی جواب ایمیل دوباره همین آدرس رو برام وارد کرد

ممنونم از راهنماییتون

Chabok
شنبه 10 مهر 1389, 19:19 عصر
با سلام

شما مشخص نکرده اید که با این آدرس چه میخواهید بکنید .

این آدرس چون توسط Server.MapPath ایجاد شده ، مسیر فیزیکی فایل بر روی سرور را مشخص می کند و برای استفاده و تغییرات فایل روی سرور کارامد است .
برای مثال حذف این فایل ، تغییر نام ، آپلود . ...

ولی جهت استفاده کاربرها باید مسیر شما روی سایت مشخص باشد .

شما در سوال خود کاربرد و مورد استفاده ای که از این آدرس انتظار دارید رو مشخص نکردید .

rana-writes
شنبه 10 مهر 1389, 19:25 عصر
همونطور که گفتم من توی سایت گالری عکس ایجاد میکنم
یعنی کاربر میتونه فولدر ایجاد کنه، تغییر نام بده، حذف کنه
و توی فولدر عکس بریزه، عکس رو به جای دیگه انتقال بده و عکس رو حذف کنه

حالا من توی کد برنامه م، از کدی که خودم نوشتم باید استفاده کنم؟ درسته و کفایت میکنه؟

من با این مسیری که هاست بهم داده کاری نمیخوام بکنم، فقط توی ایمیل مشخصات هاست نوشته بود مسیر فیزیکی فایلهای شما بر روی سرور این مسیره
فکر کردم چون مسیر فیزیکی فایلها رو بهم دادن، من هر جایی بخوام از فایلها استفاده کنم باید مسیر رو به این مسیر تغییر بدم

Chabok
شنبه 10 مهر 1389, 19:34 عصر
اگر جهت نمایش این تصاویر به کاربران می فرمایید : خیر . نیازی به داشتن این مسیر نیست .

rana-writes
شنبه 10 مهر 1389, 19:41 عصر
هم برای نمایش، هم برای ثبت و این مدل کارها
وقتی نمایش داده میشه، طبیعتا قبلش باید توی اون مسیر ثبت شده باشه، درسته؟

Chabok
شنبه 10 مهر 1389, 19:53 عصر
خیر . مسیری که برای نمایش به بازدید کننده ها استفاده میشه با مسیر فیزیکی فایل روی سرور دو بحث جداست و هر کدام کارایی خاص خود را دارند .

شما اگر میخواهید یک تصویر از این گالری در مرورگر یک کاربر نمایش داده شود باید به این صورت مسیر دهی کنید :


<img src="Gallery/Gallery01/myPic.jpg" />که این مسیر را می توانید توسط ResolveURL بدست آورید :
و به عبارتی کد شما به این تغییر پیدا می کند :



string FileName = Path.Combine(ResolveUrl("~/Gallery") + "/" + Picreader["GalleryDir"].ToString() + "/", PicName);


توجه کنید که برای نمایش در مرورگر کاربر باید مسیرها توسط / از هم جدا شوند .

ولی برای انجام عملیات روی این فایل ها بر روی سرور اعم از حذف و ایجاد و ویرایش و ... همان کد خودتان را باید استفاده کنید .

موفق باشید .

rana-writes
شنبه 10 مهر 1389, 19:58 عصر
. مسیری که برای نمایش به بازدید کننده ها استفاده میشه با مسیر فیزیکی فایل روی سرور دو بحث جداست و هر کدام کارایی خاص خود را دارند .

شما اگر میخواهید یک تصویر از این گالری در مرورگر یک کاربر نمایش داده شود باید به این صورت مسیر دهی کنید :


کد:
<img src="Gallery/Gallery01/myPic.jpg" />
که این مسیر را می توانید توسط ResolveURL بدست آورید



مرسی به خاطر راهنمایی هاتون
بله برای نمایش مثل کدی که شما گذاشتین عمل میکنم
اما برای کد ثبت ، از Server.MapPath استفاده می کردم که توی لوکال جواب می گرفتم
که با راهنمایی شما باید تغییر بدم
خیلی ممنونم

majnun
شنبه 10 مهر 1389, 20:31 عصر
ببخشید من متوجه نشدم

server.mappath باید به چی تغییر کنه ؟

ممنون میشم یه نتیجه گیری کنید

Chabok
شنبه 10 مهر 1389, 20:35 عصر
خیر . ظاهراً اشتباه شد .

عرض کردم برای کارهای ثبتی از همان server.mapPath استفاده کنید .

فقط هنگام نمایش باید مسیر توسط ResolveUrl تفسیر شود .

majnun
شنبه 10 مهر 1389, 20:40 عصر
ببخشید من فایلم رو اینجوری ذخیره میکنم :



String savepath1 = Server.MapPath("baner/");
string xx = System.IO.Path.GetExtension(FileUpload1.PostedFile .FileName);
String fileName1 = maxid.ToString() + xx;
savepath1 += fileName1;
FileUpload1.SaveAs(savepath1);
aplodimage up = new aplodimage();
int res = up.INSERT(@"~\baner\" + maxid.ToString() + xx, TextBox1.Text);


و در نهایت چنین متنی درون دیتابیش ذخیره میشه :



~\imageaplod\0.jpg



این مشکلی نداره داره ؟

rana-writes
شنبه 10 مهر 1389, 21:38 عصر
سلام
Server.MapPath نباید تغییر کنه
همون درسته
مسیر برای نمایش باید اینطوری باشه


<img src="Gallery/Gallery01/myPic.jpg" />

بله توی دیتابیس بهمین شکل که نوشتین ذخیره میشه
توی کد html اینطوری آدرس دهی میکنین