PDA

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



samiasoft
جمعه 04 اسفند 1396, 12:26 عصر
سلام دوستان

حتما با کتابخانه telegram.bot برای ارتباط با تلگرام استفاده کرده اید.

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


برای مثال تابع ارسال عکس :
public static async void sendphoto(ChatId chatid, string photopatch, string caption, ReplyKeyboardMarkup rkm) {



Stream file = new FileStream(photopatch, FileMode.Open, FileAccess.Read, FileShare.Read);


await Bot.SendPhotoAsync(chatid, new FileToSend("1.jpg", file), caption,false,0, replyMarkup: rkm);


}

نحوه فراخوانی
sendphoto(Update.Message.Chat.Id, "d://1.jpg", "توضیحات عکس", bastekhadamati);

اما وقتی همین دستورات رو میخواهیم داخل هاست استفاده کنیم که فایل رو از هاست به تلگرام ارسال کنند متاسفانه با مشکل روبرو میشویم....ایا بایستی تغییراتی ایجاد کرد؟

mr.sirwan
جمعه 04 اسفند 1396, 12:43 عصر
توی هاست اولا باید عکسا موجود باشه، دوما باید از ادرس دهی نسبی (یعنی نسبت به هاست) استفاده کنین و بعدش اون رو توسط Server.MapPath تبدیل به ادرس فیزیکی کنین
مثلا فرض کنین تو ریشه هاستمون یه فولدر به اسم App_Data داریم که حاوی فایل های موردنظر باشه، اول باید اینجوری ادرس نسبی رو بدست بیاریم:
string RelativePath = "~/App_Data/" + "1.jpg";

بعد این ادرس نسبی رو تبدیل به فیزیکی میکنیم:

string PhysicalPath = Server.MapPath(RelativePath);
حالا این ادرس فیزیکی رو به متدتون ارسال کنین