MR DellAshoob
2 سال پیش توسط MR DellAshoob مطرح شد
2 پاسخ

آپلودر node js

سلام دوستان عزیز خسته نباشید

من میخواستم با node js یک uploader داشته باشم به این صورت که زمانی ک فایل توسط اینپوت انتخاب شد یک api کال بشه و این آپلود بشه توی پوشه ای به اسم temp
و زمانی که کاربر فرم رو به صورت نهایی submit زد دقیقا همین فایل لوکیشن اش تغییر کنه به per یا همون permanently

حالا این مسئله بود اما مشکل و راهکار ها چی هستن
من برای اینکه فایل هارو از هم متمایز کنم اومدم اول اسمشون temp رو بهمراه time stamp اون لحظه چسبوندم که کاملا یونیک میکنه هر فایلی رو
اما زمانی که من میخوام با کال شدن api دوم که توسط دکمه submit فرم هستش، عکس رو به لوکیشن جدید انتقال بدم، فقط میتونم اسم عکس رو داشته باشم برای اینکه لوکیشن اش رو تغییر بدم
ینی اسم ساخته شده اش که با temp + time stamp هست رو ندارم
و اینکه حتی اگر من اسم همه ی فایل های اون فولدر رو بگیرم و با فیلتر اسم رو بکشم بیرون مشکل این هستش که شاید دوتا فایل دقیقا هم نام داشته باشیم و بعد باگ بزرگی میشه

میخوام بدونم اصلا چیزی که بهش فکر میکنم، این منطق پیاده سازی درستی هستش؟ کسایی که تو ساخت آپلودر قبلا تجربه ای دارن میتونن راهنمایی کنن منطق پیاده سازیش چه شکلی هست؟ و یا اسکریپتی چیزی sample میتونن بدن؟
ممنون میشم خیلی درگیرشم


ثبت پرسش جدید
احسان داوری
تخصص : برنامه نویس
@ehsndvr 2 سال پیش مطرح شد
1

سلام صبح شما بخیر.
از نوع متنتون و کاری که انجام میدید بنده حس میکنم شما سمت سرور هستید، بنده چنتا کار میتونم بهتون بگم ... اول اینکه فایلی اینجاد بکنید و اسم اون فایل متنی (txt , ini و...) یا داده ایی مثل (json و ...) آیدی کاربر قرار بدید و اسامی فایل ها رو توش ذخیره کنید اما مشکلی که پیش میاد اینکه ممکنه کاربر بخواد عکسی رو یا فایلی که آپلود کرده حذف بکنه ، پس شما باید در اسم گذاریتون هم دقت بکنید ، بهترین نوع اسم گذاری چیه ؟ اینکه مثال اسم فایل رو + یه نویسه 16 کارتکری متفاوت بکنید مثلا : ehsanAz546574ZD69DF.jpg حالا هر موقع کاربر خواست فایلی رو پاک بکنه شما اسم فایل رو از کاربر میگیرد و فایلی متنی که مربوط به کاربر هست رو نگاه میکنید ، اگر اسم فایل در اون وجود داشت فایل temp رو پیدا میکنید و حذفش میکنید.
حالا نمونه چیزی که گفتم میشه این :
یک فایل دارید به نام مثلا : 123456789.txt
و مقدار داخلش میشه :

ehsanAz546574ZD69DF.jpg
RoocketMkOPPasjdlkhjlkb.jpg
و ...

حتی کاری که شما میخواید بکنید خیلی سخته اول بیاد توی پوشه temp بریزه بعد بیا بندازه توی اون پوشه ....... حالا فرض کنید 1000 نفر همزمان میخوان از وبسایت/سرویس شما استفاده بکنن میدونید چقدر به سرور فشار میاد ؟ بهترین کار اینکه که شما همون موقع که چیزی آپلود میشه بندازینش توی پوشه per و با همون منطق بالا یک فایل درست بکنه که اسم فایل ها توش هست ، حالا میتونید منطق اسم گذاری رو به اینی که میگم هم تغییر بدید.
بهترین نوع اسم گذاری فایل اینکه همیشه به 16 تا 30 کارکتر رشته متفاوت باشه ... حالا در اون فایلی که به آیدی کاربر درست میکنید داده هارو به این صورت ذخیره میکنید:

ehsan.jpg    ehsanAz546574ZD69DF.jpg
Roocket.jpg    RoocketMkOPPasjdlkhjlkb.jpg

حالا وقتی کاربر میخواد فایلی رو پاک بکنه شما هم اسم فایلی که کاربر داده رو دادید هم اونایی که خودتون تغییر دادید، یعنی منطقش میشه : اسم فایل یک tab یا 4 تا فاصله و بعد اسمی که ویراییش شده.
بعد از اینکه کاربر روی دکمه submit کلیک کرد فقط بیاد اون فایل" آیدی کاربر + .ini یا .txt و..." رو پاک بکنه.

امیدوارم خوب توضیح داده باشم.
موفق باشید.


حسین
تخصص : وب
@hoseen.r8613 2 سال پیش مطرح شد
0

حالا چرا باnode js
چرا با phpنه
اگه با پی اچ پی میخوای
https://rapidcode.ir/185/how-to-make-a-advanced-ajax-uploader-with-php-jquery/
اگه رو حرفت پافشاری دارین
https://pvlearn.com/product/%D8%A2%D9%BE%D9%84%D9%88%D8%AF-%D9%81%D8%A7%DB%8C%D9%84-%D8%AF%D8%B1-node-js/
بفرمایید


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

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