~golnaz~
جمعه 28 شهریور 1393, 22:14 عصر
سلام بر همگی
من قصد دارم یک عکس از url مشخص بگیرم و در دیتابیس با فرمت varbinry ذخیره کنم (با استفاده از linq - برنامه برای یک شرکتیه که سیستماش تحت شبکست)
مشکل من اینه که برای اینکار چندین کد امتحان کردم و همه روی سیستم خودم که local هست جواب میده ولی وقتی برنامه رو publish می کنم و رو سرور شرکت میذارم کار نمیکنه ...برای مثال اول اومدم از کد زیر برای دانلود عکس استفاده کردم
byte[] imageData = (new WebClient()).DownloadData(url);
تو سیستمم خودم imageData رو در دیتابیس ذخیره میکنم و به راحتیم میتونم از دیتابیس retrieve کنم ولی بعد از publish برنامه و اجرای برنامه تو کلاینت سیستم و ذخیره عکس در دیتابیس چیزی برای نمایش عکس در کلاینت نشون نمیده البته متوجه شدم در سرور سایز imageData با زمانی که در local برنامه رو ران میکنم فرق داره و خیلی کمتره سایزش
کد زیر هم همین مشکل داشت
public byte[] getImageFromUrl(string url) {
System.Net.HttpWebRequest request = null;
System.Net.HttpWebResponse response = null;
byte[] b = null;
request = (System.Net.HttpWebRequest)System.Net.WebRequest.C reate(url);
response = (System.Net.HttpWebResponse)request.GetResponse();
if (request.HaveResponse)
{
if (response.StatusCode == System.Net.HttpStatusCode.OK)
{
Stream receiveStream = response.GetResponseStream();
using (BinaryReader br = new BinaryReader(receiveStream))
{
b = br.ReadBytes(500000);
br.Close();
}
}
}
return b;
}
ایا اینا به تنظیمات iis ربط داره ؟ راه دیگم این بود که به جای اینکه url به byte[] تبدیل کنم اول عکس تو یه فولدر share تو سرور که قابل خواندن و نوشتن بود ذخیره کردم بعد عکس از طریق آدرس عکس تو سرور تو دیتابیس ذخبره کردم این راه هم باز تو سیستم خودم جواب میده ولی رو سرور عکس خالی میسازه تو فولدر ...
اگه کسی بتونه راهنماییم کنه خیلی ممنون میشم
من قصد دارم یک عکس از url مشخص بگیرم و در دیتابیس با فرمت varbinry ذخیره کنم (با استفاده از linq - برنامه برای یک شرکتیه که سیستماش تحت شبکست)
مشکل من اینه که برای اینکار چندین کد امتحان کردم و همه روی سیستم خودم که local هست جواب میده ولی وقتی برنامه رو publish می کنم و رو سرور شرکت میذارم کار نمیکنه ...برای مثال اول اومدم از کد زیر برای دانلود عکس استفاده کردم
byte[] imageData = (new WebClient()).DownloadData(url);
تو سیستمم خودم imageData رو در دیتابیس ذخیره میکنم و به راحتیم میتونم از دیتابیس retrieve کنم ولی بعد از publish برنامه و اجرای برنامه تو کلاینت سیستم و ذخیره عکس در دیتابیس چیزی برای نمایش عکس در کلاینت نشون نمیده البته متوجه شدم در سرور سایز imageData با زمانی که در local برنامه رو ران میکنم فرق داره و خیلی کمتره سایزش
کد زیر هم همین مشکل داشت
public byte[] getImageFromUrl(string url) {
System.Net.HttpWebRequest request = null;
System.Net.HttpWebResponse response = null;
byte[] b = null;
request = (System.Net.HttpWebRequest)System.Net.WebRequest.C reate(url);
response = (System.Net.HttpWebResponse)request.GetResponse();
if (request.HaveResponse)
{
if (response.StatusCode == System.Net.HttpStatusCode.OK)
{
Stream receiveStream = response.GetResponseStream();
using (BinaryReader br = new BinaryReader(receiveStream))
{
b = br.ReadBytes(500000);
br.Close();
}
}
}
return b;
}
ایا اینا به تنظیمات iis ربط داره ؟ راه دیگم این بود که به جای اینکه url به byte[] تبدیل کنم اول عکس تو یه فولدر share تو سرور که قابل خواندن و نوشتن بود ذخیره کردم بعد عکس از طریق آدرس عکس تو سرور تو دیتابیس ذخبره کردم این راه هم باز تو سیستم خودم جواب میده ولی رو سرور عکس خالی میسازه تو فولدر ...
اگه کسی بتونه راهنماییم کنه خیلی ممنون میشم