سعید
5 سال پیش توسط سعید مطرح شد
6 پاسخ

حذف فایل ای که آدرس کامل داره در لاراول

@ali.bayat @hossein.r.1442 @hesammousavi @elyasbeshkani @juza66 @milad @rezajashnsaz0011 @endworld @mohsenbostan

سلام دوستان چه طور میشه فایلی که در public است ولی آدرسش کامله ، رو حذف کرد.
مثلا آدرس به این صورت هست

http://localhost:8000/uploads/2020/3/21/5e75f7a3f08f9400.jpg

البته File::delete رو امتحان کردن ولی false بر میگردونه
ممنون میشم راهنمایی کنید


ثبت پرسش جدید
امین محمدزاده
تخصص : برنامه نویسی وب - Laravel
@amin.webdesign 5 سال پیش مطرح شد
1

شما دامین رو نباید پاس بدید به توابع حذف
از unlink خود php هم میتونید استفاده کنید اول این تابع هم یه @ بذارید که اگه فایلی یافت نشد خطا نده
به این صورت

@unlink('uploads/2020/3/21/5e75f7a3f08f9400.jpg')

سعید
تخصص : برنامه نویس وب
@Saeeed 5 سال پیش آپدیت شد
0

@amin.webdesign
من از froala editor استفاده میکنم .
در این ادیتور وقتی فایلی آپلود میشه و دوباره توسط کاربر از ادیتور حذف میشه ،
آدرس کامل فایل به سرور فرستاده میشه تا از سرور نیز حذف بشه.
البته با کد زیر تونستم آدرس رو اصلاح کنم :

str_replace('http://localhost:8000/','',$request->get('url'));

اما می خوام بدونم راه بهتری نیست ؟


محسن بستان
تخصص : Senior Backend Developer
@mohsenbostan 5 سال پیش مطرح شد
1

@Saeeed
تنها کاری که فعلا قابل انجامه اینه که اسم رو از لینک جدا کنید اون رو حذف کنید!


امین محمدزاده
تخصص : برنامه نویسی وب - Laravel
@amin.webdesign 5 سال پیش مطرح شد
0

@Saeeed
بهترین کار همینه که انجام دادید. چون برای حذف باید مسیر فایل مستقر در هاست رو بدید و آدرس دامین نباید توی آدرس مسیر فایل باشه و تنها کار همین حذف آدرس از رشته مذکور هست.


سید حسین رضوی
تخصص : برنامه نویس وب و طراح رابط کار...
@hossein.r.1442 5 سال پیش مطرح شد
0

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


alikhakpour
تخصص : برنامه‌نویس لاراول
@alikhakpourdev 4 سال پیش آپدیت شد
0

//if $path=http://localhost:8000/uploads/image.png // $file return uploads/image.png
$file = Str::after($path, 'http://localhost:8000/') ? Str::after($path, 'http://localhost:8000/') : $path;

if(file_exists($file)) {
    unlink($file)
}

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام