PDA

View Full Version : کدی برای شمارش تعداد دانلود؟شدنی هست؟



mahdi.iqu
چهارشنبه 22 خرداد 1392, 06:08 صبح
با سلام
یک سوال داشتم.که با یک مثال مفهوم پرسش خود را آغاز میکنم.
فرض کنید در همین تایپیک من لینک دانلود یک فایل را برای شما قرار میدهم(این فایل میتونه یک فیلم باشه یا فایل txt و یا...).
مثلا فایل در ادرس زیر هست:

www.googel.com/Ms/ali.txt
من میام میگم برای دانلود مثلا فیلم به آدرس زیر بروید:
www.googel.com/Ms/ali.txt
که وقتی کاربر بر روی لینک بالا کلیک کرد فایل برای دانلود براش بیاد.و میخوام کاری کنم که در کنار لینک دانلود تعداد باری که این فایل دانلود شده رو نمایش بده.
در کل نتیجه کار بشه :
دانلود فایل:
www.googel.com/Ms/ali.txt
تعداد دانلود:مثلا 10 بار

ممنون میشم دوستان کدی به این شکل بدند

Tarragon
چهارشنبه 22 خرداد 1392, 07:48 صبح
سلام
یکم جستجو کنید کد دانلود با هدر رو پیدا می کنید.
البته فبلش باید کدهای آمارگیری رو بزارید بصورتی که تو دیتابیس برای نام فایل یه قسمت به نام آمار وجود داشته باشه که بصورت پیشفرض 0 باشه هر بار که این فایل باز می شه اون عدد +1 بشه.
بعدش برای نشون دادنش می تونید اون عدد رو چاپ کنید.

us1234
چهارشنبه 22 خرداد 1392, 09:03 صبح
خیلی سادس .
شما با جی کوئری یک کدباید بنویسی که هر وقت یورز روی لینک کلیک کرد اول به صورت ajax عملیات شمارش را انجام بده بعد هم بره برا دانلود.

mahdi.iqu
چهارشنبه 22 خرداد 1392, 17:42 عصر
تشکر از دو دوست عزیز
در پست سوم گفتید کدی برای این امر وجود داره!
میشه این کد رو در اختیار بنده قرار بدید؟
واقعیت علمی چندان جالب در این عرصه ندارم :(

mamali-mohammad
چهارشنبه 22 خرداد 1392, 19:22 عصر
خیلی سادس .
شما با جی کوئری یک کدباید بنویسی که هر وقت یورز روی لینک کلیک کرد اول به صورت ajax عملیات شمارش را انجام بده بعد هم بره برا دانلود.

با کلیک راست و new tab دیگه کد شما کار نمی کنه

profnami
چهارشنبه 22 خرداد 1392, 19:25 عصر
id فایل مربوطه رو به یک صفحه مشخص بفرستید. اونجا تعداد داونلود رو افزایش بدید و کاربر رو به مسیر فایل مورد نظر هدایت کنید. فکر کنم هم ساده ست هم میشه جلوگیری کرد از خطا.

cpuram
چهارشنبه 22 خرداد 1392, 20:41 عصر
میتونید برای لینک دانلود از دکمه استفاده کنید و وقتی کلیک میشه onclick اون فعال بشه و اطلاعاتی رو با jquery به دیتابیس بفرستید.

Unique
پنج شنبه 23 خرداد 1392, 03:16 صبح
چرا برای هر موضوعی دوستان را به jquery حواله میدین ؟ در صورتیکه آقا امین در پست دوم جوابشون را دادند ! من هم تاکید میکنم که باید ارسال فایل را از طریق header انجام بدین و نه لینک مستقیم ! بعد برای هر فایل که قائدتا یک مشخصه مانند id داره ! فیلدی در پایگاه داده به عنوان counter تعریف کنید و قبل از ارسال فایل برای کاربر یک واحد به اون فیلد اضافه کنین! اینجوری میتونید تعدا دانلود را از طریق همین فیلد counter به کاربران نشون بدین.

برای ارسال از طریق header هم خیلی بحث شده و با یک جستجوی ساده توی انجمن به نتیجه میرسین (Content-Disposition را جستجو کنید).

us1234
پنج شنبه 23 خرداد 1392, 09:28 صبح
چرا برای هر موضوعی دوستان را به jquery حواله میدین ؟ در صورتیکه آقا امین در پست دوم جوابشون را دادند ! من هم تاکید میکنم که باید ارسال فایل را از طریق header انجام بدین و نه لینک مستقیم ! بعد برای هر فایل که قائدتا یک مشخصه مانند id داره ! فیلدی در پایگاه داده به عنوان counter تعریف کنید و قبل از ارسال فایل برای کاربر یک واحد به اون فیلد اضافه کنین! اینجوری میتونید تعدا دانلود را از طریق همین فیلد counter به کاربران نشون بدین.

برای ارسال از طریق header هم خیلی بحث شده و با یک جستجوی ساده توی انجمن به نتیجه میرسین (Content-Disposition را جستجو کنید).

به چند دلیل :
1- ارتباطات ajax فشار خیلی کمی به سرور میاره ( به دلیل کم شدن درخواست های الکی )
2- دست برنامه نویس در جی کوئری بازه و تقریبا هر کار محالی را می تواند انجام دهد
3- سایت های زیبا و پر سرعت تری میشه طراحی کرد

در این مورد خاص هم میشه فایل را در هدر قرار داد و یا به یه صفحه دیگه لینک داد که با Id تعداد را بشماره بعد دوباره ریدایرکت بشه ولی باید در نظر بگیری که هیچ کدام از این روش ها از نظر سئو مناسب نیست چون در موتور جستجو یک لینک مستقیم یا پسوند فایل یک مزید محسوب میشه !

Unique
پنج شنبه 23 خرداد 1392, 12:59 عصر
1- ارتباطات ajax فشار خیلی کمی به سرور میاره ( به دلیل کم شدن درخواست های الکی )
2- دست برنامه نویس در جی کوئری بازه و تقریبا هر کار محالی را می تواند انجام دهد
3- سایت های زیبا و پر سرعت تری میشه طراحی کرد

همه این موارد درسته اما اگه مثلا شما بخواین برای دسترسی به فایل محدودیت درست کنید اونوقت دادن لینک مستقیم به فایل و چک کردن دسترسی و افزایش شمارنده توی یک فایل دیگه با ajax موضوع امنیت را زیر سوال میبره و اونوقت همه با داشتن آدرس فایل روی سرور شما بهش دسترسی دارند (البته ایشون صحبتی در مورد محدود کردن دسترسی مثلا به کاربران عضو نکردند).

اما موضوع دیگه که من متوجه نمیشم اینه که SEO مربوط به محتوا میشه ! مثلا یک فایل avi چه تاثیری در seo سایت داره ؟ مثلا شما میخواین توی google video قابل ارائه باشه ؟ ،‌البته باز هم فکر نمیکنم آدرس مستقیم با ارسال از طریق header فرقی ایجاد کنه و google تشخیص میده این لینک داره یک فایل را ارسال میکنه و توی header هم مشخصه که عکس هست یا فیلم یا هر چیز دیگه ای.

نتیجه اینکه روش ما هم درسته و شاید هم بهینه باشه اما مشکلش اینه که اگه نیاز به محدود کردن به کاربران با شرایط خاص باشیم کاربرد نداره.

mahdi.iqu
سه شنبه 28 خرداد 1392, 05:44 صبح
تشکر از پاسخ دوستان
بنده هر کاری کردم نتونستم چنین چیزی رو پیاده کنم
لطفا کمک کنید

Dark Lord
سه شنبه 28 خرداد 1392, 10:30 صبح
دوستان نظرتون راجع به لینک زدن به فایل چیه؟


تشکر از پاسخ دوستان
بنده هر کاری کردم نتونستم چنین چیزی رو پیاده کنم
لطفا کمک کنید




<?php
$file = 'monkey.gif';

if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;
}
?>

mahdi.iqu
چهارشنبه 29 خرداد 1392, 06:52 صبح
این کدا رو چی کار کنم؟
کجا بزارم؟

Dark Lord
چهارشنبه 29 خرداد 1392, 11:08 صبح
به جای monkey.gif آدرس فایلی که باید دانلود بشه رو قرار میدید، قبل از این کد ها هم به تعداد دانلود های فایل مد نظر یکی اضافه میکنید.