PDA

View Full Version : سوال: اخطار به خاطر آپلود با حجم زیاد



ravand
شنبه 28 اردیبهشت 1392, 11:38 صبح
سلام من این برنامه رو نوشتم وقتی فایلی رو با حجم زیاد آپلود می کنیم اخطار میده این برنامه ی توی همه ی مرورگر ها کار کرد به غیر از اکسپلورر.

<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#myFile').bind('change', function() {
if(this.files[0].size>20000)
{
alert('حجم عكس زياد است');
}
});
});
</script>
</head>
<body>
<form enctype="multipart/form-data" action="ravandi.php" method="POST">
<input type="file" id="myFile" /><br/>
<input type="submit" value="ارسال" />
</form>
</body>
</html>
میشه این مشکل رو حل کرد؟
متشکرم.

mrgraphy
شنبه 28 اردیبهشت 1392, 13:29 عصر
سلام دوست عزیز.
اول اینکه شما مشخص کنید که الان دارید با jquery کار میکنید یا javascript اولش رو با jquery نوشتید اما موقع چک کردن که شد از this و size که برای javascript هست استفاده کردید. خودتون باعث ایجاد conflict شدید.
دوم اینکه متد های مربوط به اندازه فایل ها در ورژن های مختلف ie تغییراتی میکنه و هر ورژنی به گونه ای خاص با اون متد برخورد میکنه(جا داره بگم که هر چی مشکل تو وب هست سر همین ie هستش).

من به شخصه به شما پیشنهاد میکنم برای این کار از jquery validate که یک پلاگین هست استفاده کنید. چون امنیتش خیلی بالا هست. اما این کد شما رو من میتونم تو فایر باگ تغییر بدم و یه فایل 10 گیگ رو بزارم به سمت سرور ارسال بشه هر چند که شما سمت سرور محدودیت فایل گذاشته باشید اما cpu و ram سرور شما بد جوری اشغال میکنه
این لینکه پلاگین هستش.
http://docs.jquery.com/Plugins/Validation
http://plugins.jquery.com/validate/
https://github.com/jzaefferer/jquery-validation
اگر دوست نداشتید از پلاگین استفاده کنید این لینک (http://stackoverflow.com/questions/1601455/check-file-input-size-with-jquery) مشکل شما رو حل میکنه.
موفق باشید

ravand
شنبه 28 اردیبهشت 1392, 13:47 عصر
من از حرف های شما خیلی متعجب شدم!!!!!!!!!!!
خب جی کوئری یک کتابخانه از جاوا اسکریپت هست . خوب معلومه که میشه از دستورات جاوا اسکریپت داخل جی کوئری استفاده کرد.
دوم اینکه جی کوئری و جاوا اسکریپت سمت کلاینت هستند و شما با این پلوگین های جی کوئری نمیتونید امنیت یه سایت رو برقرار کنید. کافیه هکر خودش یه فرم به جای فرم شما بسازه . و وقتی شما در سمت سرور از کدی برای امنیت استفاده نکرده باشید هکر راحت کدهای شما رو دور میزنه.
بهتره یه کم در مورد زبان های سمت سرور و کلاینت تحقیق کنید.
موفق باشید.

mrgraphy
شنبه 28 اردیبهشت 1392, 13:58 عصر
اگر قراره از javascript استفاده کنیم چرا jquery به وجود اومد؟؟
چون یک framework هستش. اگر با framework ها آشنایی داشته باشید و راجع بهشون اطلاع داشته باشید هدف از نوشتن frame work ها اینه که به صورت cross platform کاربکنند و در همه جا اجرا بشوند. پس خیلی فرق میکنه از جا اسکریت استفاده بشه یا jquery.
jquery کلاینت ساید هستند درست. اما اگر راجع به xss اطلاعات داشته باشید متوجه میشید که با به وجود آمدن xss امنیت سایت از طریق کلاینت سایت هم برقرار میشه.
راجع بهش قبلا تاپیک زدم.
و در آخر جهت اطلاع شما دوست عزیز عرض کنم جاوا اسکریپت و framework های اون از زمان ظهور node.js دارن سرور ساید میشن.
عجیبه که شما با این سابقه تو سایت برنامه نویس اطلاعات کافی راجع به این مسائل ندارید.

WOLF_MEHRDAD
شنبه 28 اردیبهشت 1392, 14:09 عصر
خب اگه جاوا اسکریپت در مرورگر غیر فعال بود تکلیف چیه ؟

mrgraphy
شنبه 28 اردیبهشت 1392, 14:20 عصر
اونوقت کد شما کلا غلطه که دارید با جاوا اسکریپت این کارو میکنید.
وقتی قراره غیره فعال باشه چ کاریه که بنویسیم.
اما اگر با node.js backbone.js و فریم ورک های جدید نوشته بشه اصلا مهم نیست که مرور گر جاوا اسکریپت داره یا نه. چون Engine این فریم ورک ها در وب سرور های جدید مثل lightspeed وجود داره و این ها سمت سرور اجرا میشن.
اطلاعات راجع به این engine ها تو وبسایت خود lightspeed موجود هستش.

WOLF_MEHRDAD
شنبه 28 اردیبهشت 1392, 15:07 عصر
اونوقت کد شما کلا غلطه که دارید با جاوا اسکریپت این کارو میکنید.
وقتی قراره غیره فعال باشه چ کاریه که بنویسیم.
اما اگر با node.js backbone.js و فریم ورک های جدید نوشته بشه اصلا مهم نیست که مرور گر جاوا اسکریپت داره یا نه. چون Engine این فریم ورک ها در وب سرور های جدید مثل lightspeed وجود داره و این ها سمت سرور اجرا میشن.
اطلاعات راجع به این engine ها تو وبسایت خود lightspeed موجود هستش.

خب شما نمیدونی کدوم کاربر فعال داره کدوم خیر
برای ارتباط با node.js نباید سمت کاربر جاوا اسکریپت فعال باشه ؟

mrgraphy
شنبه 28 اردیبهشت 1392, 15:15 عصر
خیر. نیازی به فعال بودنش نیست. چون سرور ساید هستش.
هر سایتی که با php نوشته میشه آیا برای دیدن اون سایت ما باید php رو سیستممون نصب کنیم؟

به هر حال قصد من کمک کردن به اون دوستمون بود که متوجه شدیم که دنبال حل مشکلش نیست. شاید هم اصلا مشکلی نداشته و فقط خواسته با مطرح کردن این سوال بگه که من هم دارم پروژه ای کار میکنم یا شاید هم دنبال یه نفر میگشته که باهاش بحث بکنه.
به هر حال این جور مسائل باعث میشه که آدم نسبت به جواب دادن به سوالات و مشکلات بقیه سرد بشه.
امیدوارم دوستان متوجه منظورم شده باشند. موفق باشید.

WOLF_MEHRDAD
شنبه 28 اردیبهشت 1392, 15:31 عصر
قصد ندارم تاپیک رو طولانی ترش کنم

ولی یکی از ماژول های nodejs به اسم nowjs به ما این امکان میده که توابع ما که در سمت کاربر هست رو صدا بزنیم
حالا اگه js در مرور گر غیر فعال باشه چه اتفاقی میوفته ؟ و مسائل زیادی از این قبیل

ravand
شنبه 28 اردیبهشت 1392, 15:31 عصر
خیر. نیازی به فعال بودنش نیست. چون سرور ساید هستش.
هر سایتی که با php نوشته میشه آیا برای دیدن اون سایت ما باید php رو سیستممون نصب کنیم؟

به هر حال قصد من کمک کردن به اون دوستمون بود که متوجه شدیم که دنبال حل مشکلش نیست. شاید هم اصلا مشکلی نداشته و فقط خواسته با مطرح کردن این سوال بگه که من هم دارم پروژه ای کار میکنم یا شاید هم دنبال یه نفر میگشته که باهاش بحث بکنه.
به هر حال این جور مسائل باعث میشه که آدم نسبت به جواب دادن به سوالات و مشکلات بقیه سرد بشه.
امیدوارم دوستان متوجه منظورم شده باشند. موفق باشید.
نه دوست عزیز من اونقدر بیکار نیستم که بشینم با شما بحث بکنم اگه وقت داشتم توی همون چت باهاتون بحث می کردم.
اصلا من مبتدی ام و هیچی نمیدونم همینطوری که گفتم بذارید دوستان بیان نظر بدن اگر اون ها هم با نظر شما موافق بودن من قبول میکنم و هیچ غرور بی جایی ندارم.
موفق باشید.

mrgraphy
شنبه 28 اردیبهشت 1392, 16:41 عصر
قصد ندارم تاپیک رو طولانی ترش کنم

ولی یکی از ماژول های nodejs به اسم nowjs به ما این امکان میده که توابع ما که در سمت کاربر هست رو صدا بزنیم
حالا اگه js در مرور گر غیر فعال باشه چه اتفاقی میوفته ؟ و مسائل زیادی از این قبیل

در این مورد حق با شماست. اما وقتی میشه سمت سرور این کارو کرد نیازی نیست از سمت کلاینت استفاده کنیم. چون از نظر امنیتی درست نیست.