بهترین کار اینه که فایل رو مستقیم با اسم نهایی ذخیره نکنید. اول بهصورت موقت آپلودش کنید و بعد از اینکه کامل شدن فایل تأیید شد، به فایل اصلی تبدیلش کنید.
مثلاً:
uploading/file-123.tmp
بعد از اتمام آپلود، سرور حجم فایل، checksum یا hash و در صورت نیاز نوع فایل رو بررسی میکنه. اگر همهچیز درست بود:
file-123.tmp → file-123.jpg
اگر اینترنت وسط کار قطع بشه، فایل موقت ناقص میمونه و اصلاً وارد اطلاعات اصلی سایت نمیشه. میتونید فایلهای موقت قدیمی رو هم بعد از مثلاً چند ساعت پاک کنید.
برای فایلهای بزرگ هم بهتره از resumable/chunked upload استفاده کنید؛ یعنی فایل به چند بخش ارسال بشه و اگر اتصال قطع شد، فقط بخشهای باقیمانده دوباره ارسال بشن.
پس اصل کار:
فایل موقت → تکمیل آپلود → بررسی صحت → انتقال به فایل نهایی
این روش هم جلوی فایل خراب رو میگیره، هم برای قطعی اینترنت خیلی مطمئنتره.
هنوز پاسخی ثبت نشده
نظرها