فایل موجود در پوشه uploads را با استفاده از تابع rename در PHP به یک نام جدید امن تغییر نام دهید و پس از موفقیت، لینک دانلود فایل جدید را نمایش دهید.

5.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:53

0.0

برای این سؤال از تابع rename(oldPath, newPath) استفاده کنید؛ ابتدا با file_exists بررسی کنید که فایل مبدا موجود است و با file_exists برای مقصد مطمئن شوید نام جدید قبلاً وجود ندارد. قبل از تغییر نام نام جدید را با توابعی مانند basename یا preg_replace برای حذف کاراکترهای ناامن و pathinfo مدیریت کنید و با is_writable(dirname($oldPath)) مجوز نوشته شدن در پوشه را چک کنید. در انتها پس از اجرای rename با بررسی مقدار بازگشتی، لینک دانلود را با urlencode روی نام فایل تولید کرده و خطاها را به‌صورت مناسب هندل کنید؛ در محیط آپلود از move_uploaded_file پیش از rename در صورت نیاز استفاده کنید و همیشه مسیرها را با realpath یا مسیر مطلق امن کنید.

توسط پژوهشگر در 202 روز قبل ساعت 02:53
دسته بندی ها: PHP PHP for beginner
reyhaneh در 202 روز قبل ساعت 08:13

یک نکته کلیدی این است که پیش از اجرای rename مطمئن شویم مسیر مبدا و مقصد هر دو معتبر و امن هستند و نام جدید بدون کاراکترهای ناامن است. استفاده از basename یا pathinfo برای ساخت نام امن و استفاده از urlencode روی نام فایل برای لینک دانلود ضروری است. بررسی وجود فایل مبدا با file_exists و عدم وجود نام مقصد در کنار بررسی writable بودن پوشه (is_writable(dirname($oldPath))) از بروز خطاها جلوگیری می‌کند. همچنین در محیط آپلود بهتر است move_uploaded_file را قبل از rename به کار بریم و همیشه از مسیر مطلق استفاده کنیم. در نهایت مقدار بازگشتی rename را بررسی کرده و خطاها را با پیام مناسب گزارش دهید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری