View Full Version : چطوری میشه عکس دریافت شده از آژاکس رو به عنوان سورس یک img قرارداد؟
combo_ci
شنبه 24 مرداد 1394, 15:40 عصر
سلام
من یک کد نوشتم البته با کمک اینترنت که یک عکس از دیتابیس میخونه و برمیگردونه به صفحه
حالا وقتی دیتای برگردونده شده از آژاکس رو به عکس نسبت میدیم یه سری حروف اسکس نشون میده رو صفحه...کسی میدونه مشکل کجاست؟
$.ajax({
contentType: "text/html; charset=utf-8",
url: "ImageGetter.aspx?id=12",
dataType: "text",
success: function (data) {
$("#logo").attr("src", data);
}
});
البته یه جا خوندم که این کد کار میکنه اما اینم کار نکرد
$('#logo').attr("src","data:image/png;base64,' + data + '" />');
sinoser
شنبه 24 مرداد 1394, 17:59 عصر
اگر خروجی ادرس ImageGetter.aspx?id=12 یک آدرس عکس حقیقی هست نیاز به ajax برای لود کردن نیست همین که ادرس عکس جدید رو با متد attr بدی عکس لود میشه.
$('#logo').attr("src","ImageGetter.aspx?id=12");
combo_ci
شنبه 24 مرداد 1394, 18:31 عصر
نه آدرس نیست بلکه توی اون فرم یک تابع هست که متن رو به عکس تبدیل میکنه و میفرسته.... و عینا یک عکس با فورمت png برمیگردونه
ایده اولیه هم این بوده
http://barnamenevis.org/showthread.php?321157-%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D9%85%D8%AA%D9%86-%D8%AF%D8%B1%D9%88%D9%86-%D8%AA%DA%A9%D8%B3%D8%AA-%D8%A8%D8%A7%DA%A9%D8%B3-%D8%A8%D9%87-%D8%B9%DA%A9%D8%B3&p=1408787&viewfull=1#post1408787
الان من با صدا زدن آژاکس عینا یک عکس بخ صفحه برمیگردونم
sinoser
شنبه 24 مرداد 1394, 19:27 عصر
نه آدرس نیست بلکه توی اون فرم یک تابع هست که متن رو به عکس تبدیل میکنه و میفرسته.... و عینا یک عکس با فورمت png برمیگردونه
ایده اولیه هم این بوده
http://barnamenevis.org/showthread.php?321157-%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D9%85%D8%AA%D9%86-%D8%AF%D8%B1%D9%88%D9%86-%D8%AA%DA%A9%D8%B3%D8%AA-%D8%A8%D8%A7%DA%A9%D8%B3-%D8%A8%D9%87-%D8%B9%DA%A9%D8%B3&p=1408787&viewfull=1#post1408787
الان من با صدا زدن آژاکس عینا یک عکس بخ صفحه برمیگردونم
دقیقا خروجی اون چیه ؟ یعنی چه نوع داده ای هست. توی console.log چاپ کنیش چی بر می گردونه ؟
بالاخره عکس هم که میسازه خود فایل عکس که نیست یک ادرس هست که اگر اون ادرس رو مستقیما توی مروگر بزنی اون عکس رو نشون میده درسته ؟
اگر این جوره که همونی که گفتم باید کار کنه اما اگر یک فرمت داده ای می فرسته باید دیدی چیه (من C# کار نکردم کد ها رو نمی فهمم دقیق چی خروجی میده)
combo_ci
شنبه 24 مرداد 1394, 19:47 عصر
این کارو کلا برای تولید منوآله CaptchaImage خیلی استفاده میکنن
آره دقیقا یک عکس برمیگردونه که اگه توی FIRRBUG متغیر رو نگاه کنیم یه هدره PNG هم داره...........
این مثلا یک خروجیشه...مثل اینکه شما یک عکس رو توی نوتپد باز کنین
134298
sinoser
یک شنبه 25 مرداد 1394, 08:35 صبح
باید عکس رو در یک محل ذخیره کنی (موقت) بعد ادرس اون رو return کنی .
bmpImg.save('address');
return https_address_of_bmpImg;
2undercover
یک شنبه 25 مرداد 1394, 19:04 عصر
سلام
من یک کد نوشتم البته با کمک اینترنت که یک عکس از دیتابیس میخونه و برمیگردونه به صفحه
حالا وقتی دیتای برگردونده شده از آژاکس رو به عکس نسبت میدیم یه سری حروف اسکس نشون میده رو صفحه...کسی میدونه مشکل کجاست؟
$.ajax({
contentType: "text/html; charset=utf-8",
url: "ImageGetter.aspx?id=12",
dataType: "text",
success: function (data) {
$("#logo").attr("src", data);
}
});
البته یه جا خوندم که این کد کار میکنه اما اینم کار نکرد
$('#logo').attr("src","data:image/png;base64,' + data + '" />');
برای این که اون کدی که در انتها گذاشتید کار بکنه باید محتوای نهایی اون صفحه ImageGetter.aspx با استفاده از الگوریتم Base64 کد شده باشه.
2undercover
یک شنبه 25 مرداد 1394, 19:06 عصر
http://stackoverflow.com/questions/7370943/retrieving-binary-file-content-using-javascript-base64-encode-it-and-reverse-de?lq=1
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.