سلام دوستان..
با استفاده از ajax تصویر جدید پروفایل رو آپلود میکنم..
آدرس فایل با اسمی که میخوام توی دیتابیس سیو میشه، فقط نکته ای که هست فایل تصویر پروفایل کاربر همیشه اسمش ثابته توی دیتابیس و فایل جدید با اون اسم روی قبلی سیو میشه..
بعدش که عملیات تموم میشه میخوام تصویر جدید رو توی دو سه تا تگ img بارگزاری کنم...
اینم کد ajax اون بخشی که موفقیت آمیزه عملیات:
success:function(data){
image.src="{{ asset('http://dl.testdomain.com/'.Auth::user()->image_addr) }}";
smallScreenUserMenuProfileImage.src="{{ asset('http://dl.testdomain.com/'.Auth::user()->image_addr) }}";
sidebarProfileImage.src="{{ asset('http://dl.testdomain.com/'.Auth::user()->image_addr) }}";
$('#upload').html('<i class="fas fa-cloud-upload-alt ml-2"></i>آپلود').removeClass('disabled');
btnUploadImage.style='display: none';
fileInput.value='';
fileInputLabel.innerText='تصویری انتخاب نشده!';
imageInputBlock.style=""
@if((Auth::user()->image_addr) != 'back/img/Default_Profile_Image.jpg')
btnDeleteImage.style='display: block';
@endif
}
ولی نمیدونم چرا تصویر قبلیه لود میشه نه جدیده، یه جورایی چون اسم و آدرس یکی هست انگار از کش مرورگر استفاده میکنه برای لود..
به محض اینکه صفحه رو ریفرش میکنم عکس جدیدم رو نشون میده ولی من نمیخوام ریفرش کنم میخوام بعد از پایان عملیات سریع جدیده رو نشون بده..
کد ها رو هم تست کردم درسته یعنی مثلا اگه یه آدرس دیگه به این تگهای ایمیج بدم نشون میده عکسشو:
image.src="{{ asset('http://dl.testdomain.com/'.Auth::user()->image_addr) }}";
ممنون میشم راهنماییم کنید..
سلام بعد آپلود تصویر، با کد جاوا اسکریپت آدرس آواتار رو به همراه پارامتر زمان درخواست کنید، اینجوری مرورگر دیگه از کش نمیخونه
image.src='http://dl.testdomain.com/' + image_address + '?' + new Date().getTime();
برای دریافت مجدد اطلاعات کاربر از Auth::user() شما باید یک api با ajax فراخوانی کنی که در سمت سرور اطلاعات Auth::user رو در قالب json به شما برگشت بده
public function user()
{
$user = Auth::user();
return response()->json([
'user' => $user
]);
}
سوال دومم اینه که چجوری میتونم بعد از اتمام عملیات ajax بالا اطلاعات
Auth::user()
رو آپدیت کنم؟
چون یه سری فیلدای این کاربر لاگین شده بعد از این عملیات بالا آپدیت میشه که نیاز دارم وقتی تصویرم آپلود شد تو همون success اون اطلاعات آپدیت شده اون فیلدا رو تو ویوو داشته باشم.. بدون اینکه بخوام صفحه رو ریفرش کنم..
سلام بعد آپلود تصویر، با کد جاوا اسکریپت آدرس آواتار رو به همراه پارامتر زمان درخواست کنید، اینجوری مرورگر دیگه از کش نمیخونه
image.src='http://dl.testdomain.com/' + image_address + '?' + new Date().getTime();
برای دریافت مجدد اطلاعات کاربر از Auth::user() شما باید یک api با ajax فراخوانی کنی که در سمت سرور اطلاعات Auth::user رو در قالب json به شما برگشت بده
public function user()
{
$user = Auth::user();
return response()->json([
'user' => $user
]);
}
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟