راکت
سعید
سعید
توسط سعید مطرح شد
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.webdesign6 سال پیشمطرح شد
1

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

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

سعید
سعید
تخصص :برنامه نویس وب
@Saeeed6 سال پیشمطرح شد
0

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

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

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


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

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


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

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


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

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


alikhakpour
alikhakpour
تخصص :برنامه‌نویس لاراول
@alikhakpourdev5 سال پیشمطرح شد
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)
}

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

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