جلوگیری از آپلود فایل های تکراری در root site با استفاده از jquery
باسلام خدمت دوستان و همراهان و اساتید سایت پرس نت. ممنون میشم اگر کمک کنید من میخوام برای جلوگیری از اینکه کاربر وقتی یک فایل داره وارد سرور میکنه برای بار دوم دیگه نتونه این کارو بکنه چون باعث کندی سرعت در سرور و حافظه میشه و یک خطای بهش بده عملیات انجام نشه با استفاده از jquery
خب شما کارهای زیادی می تونید انجام بدید. بستگی داره که در پروژه شما چه شرایطی حاکم هست.
اگر کاربر شما فقط اجازه داره یک فایل رو آپلود کنه و دیگه نمی خواهید بیشتر از این حق آپلود فایل بهش بدید میتونید یک جدول در دیتابس خودتون ایجاد کنید و هر کاربری که فایلی رو آپلود کرد توی اون جدول ثبت کنید و اگر نام کاربر در اون جدول وجود داشت دیگه اجازه آپلود رو بهش ندید. حتی میتونید مشخصات فایل رو هم در جدول ثبت کنید. (مثلا نام فایل، حجم فایل و ...) و بهش اخطار بدید که قبلا فایلی با نام x و حجم n آپلود کردید و دیگه اجازه این کار رو ندارید.
اما سناریو دوم اینه که کاربر فایل تکراری فقط نتونه آپلود کنه. خب برای جلوگیری از این کار هم همون جدول جواب میده. چون شما میتونید سایز فایل آپلود شده رو به صورت Byte در جدول نگهداری کنید. اگر مجدد فایل دقیقا با همین سایز آپلود کرد بهش اخطار بدید که فایل تکراری هست چون خیلی به ندرت (کمتر از 1 هزارم درصد) پیش میاد که 2 تا فایل دقیقا یک سایز داشته باشن از نظر Byte.
در ادامه براتون یه قطعه کد قرار میدم تا ببینید چجوری میتونید سایز یک فایل رو به صورت بایت توسط جی کوئری کنترل کنید.
<input id="myattach" type="file" />
<script>
var file = $("#myattach").get(0);
var files = file.files;
//کنترل سایز فایل
if (files[0].size >= 512000) {
alert('حجم فایل بیش از 500 کیلوبایت است');
return false;
}
</script>
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
- حذف فایلها و دستورات Css و JavaScript اضافی
- دلیل خطای Identifier 'X' has already been declared در جی کویری چیست ؟
- نمایش پیغام گرافیکی با جی کویری
- تفاوت Class Component و Functional Component در React.js چیست ؟
- مقایسه مقدار اینپوت باکس با type آن در جی کویری
- دریافت کمترین و بیشترین مقدار با پلاگین ui-jquery
- وارد کردن فقط حروف انگلیسی در تکست باکس در html
- وارد کردن شکل صحیح ایمیل و شماره تماس با جی کویری
- ارسال اطلاعات با استفاده از ایجکس به همراه پارامتر
- مخفی کردن ستون در table در html