شمارنده دانلود فایل های html. نصب پیشخوان دانلود - مروری بر افزونه ها برای وردپرس. پانل کشویی روی "Mootools"

سوال بعدی که اخیراً هنگام تنظیم پروژه نویسنده بی تکلف خود به آن علاقه مند شدم، این بود که چگونه تعداد بارگیری های یک فایل خاص را که در اینجا پست شده است بشمارم. منطقی‌تر بود که فرض کنیم این کار به یک افزونه دیگر، نوعی مدیریت دانلود یا، ساده‌تر، یک شمارنده دانلود نیاز دارد. با جستجو در اینترنت، مشخص شد که طبق معمول، این افزونه ها یک واگن و یک گاری کوچک هستند. اما بررسی های آنها - دوباره، نه. اینکه چه چیزی را انتخاب کنم کاملاً مشخص نیست و طبق معمول مجبور شدم همه چیز را روی خودم آزمایش کنم. و با توجه به نتایج آزمایش، این بررسی کننده معلوم شد. این برای مدت زمان طولانی نوشته شده است، در حالی که هدف آزمایش کامل همه افزونه های بالا با بررسی کامل تنظیمات آنها نبود، بنابراین شما اسکرین شات های دقیق از هر کدام را پیدا نمی کنید، اما در اینجا تنظیمات کلیدی وجود دارد. من اصلاً نمی خواستم در مورد برخی صحبت کنم - آنها بسیار احمقانه بودند ، اما اگر قبلاً نگاه کرده بودم ، حیف بود که اصلاً چیزی ننویسم.

معرفی.

بنابراین، وظیفه شمارش تعداد دانلودهای یک فایل خاص با تنظیم شمارنده دانلود برای وردپرس بود. پس از بررسی دقیق تر، به چندین کار فرعی تقسیم شد، یا بهتر است بگوییم، آرزوهایی برای افزونه ای که آن را انجام دهد. در اینجا لیست کوتاهی از آنها آورده شده است:

  • لازم است تعداد دانلودها در جایی در پنل مدیریت نمایش داده شود، با قابلیت مرتب سازی - تعداد دانلود در روز، در هفته، ماه، سال، کل
  • مطلوب است که بتوانید نمودارها / نمودارهای دانلود فایل ها را نسبت به یکدیگر مشاهده کنید
  • مطلوب است که بتوانید نمودارها / نمودارهای بارگیری فایل ها را در طول زمان مشاهده کنید
  • مطلوب است که آمار مربوط به آخرین بارگیری فایل حفظ شود
  • امکان نمایش اطلاعات در کنار لینک در مورد تعداد دفعات دانلود فایل و همچنین اندازه آن و تاریخ دانلود برای کاربری که به تازگی آن را دانلود می کند. خوب، یا نه - به درخواست مدیر
  • امکان درج کد مسئول این کار با یک دکمه جداگانه در پانل ارسال ویرایشگر TinyMCE (من دوست ندارم از برچسب های سریع استفاده کنم)
  • امکان محدود کردن سرعت دانلود (در صورت امکان)
  • پیوست کردن تابع آپلود به این افزونه (بارگذاری فایل ها به سرور) - برعکس، تسلیم نشد. FTP برای من هم خوب کار می کند. اما اگر زیاد تداخل ندارد، بگذارید بماند
  • خوب است که بتوانم یک دکمه زیبا به لینک دانلود بچسبانم - اگرچه فقط باید کلاس = "دکمه" را بنویسم.

ABAP

دریافت فایل!

  • خوب، اگر تعداد دانلودها را نه تنها از سایت خود، بلکه به سادگی از یک لینک بشمارید
  • امکان ممنوعیت دانلود مستقیم فایل بدون نشان دادن محل قرارگیری آن در سرور.

این یک لیست بسیار کوچک است.

مرور

پس از اینکه در مورد TOR تصمیم گرفتیم، شروع به بررسی آنچه که مستقیماً به ما ارائه می شود خواهیم کرد.

1. Plugin Download Counter 1.2، از اینجا دانلود شده است.

در ابتدا، صفحه افزونه قرار داشت، اما نویسنده بیش از 4 سال است که از آن پشتیبانی نمی کند. ما یک پوشه دیگر برای آن در دایرکتوری افزونه ها برای من ایجاد می کنیم - download-counter، هر دو فایل را آنجا بریزید. در نتیجه - کجا فکر می کنید؟ - تنظیمات مربوط به آن در سوابق ظاهر می شود. خیلی اصلیه ولی خوبه

ما به داخل می رویم، مسیر فایل download-manager.php را می نویسیم (من واقعاً دوست ندارم هیچ مزخرفی را درست در ریشه پرتاب کنم). و ببین چی به دست آوردیم ما فایل را آپلود می کنیم، بررسی کنید که آیا به صورت دستی دانلود شده است، اگر لینک مستقیم را در مرورگر وارد کردید، مسیری را در افزونه وارد کنید تا شمارنده ایجاد شود. در تئوری، یک شناسه باید ایجاد شود، که پس از آن باید در همه جا درج شود. اما هیچ اتفاقی نیفتاد - خطای "خطا - ضبط رکورد را نمی توان ذخیره کرد" می دهد. خوب، خوب، ما متقاعد شدیم، آن را به ریشه download-manager.php منتقل می کنیم - دوباره هیچ چیز، همان خطا. خوب، به جهنم، ماهی قرمز، برای من کافی نبود که افزونه هایی را بفهمم که نویسنده آنها را رها نکرده است. علاوه بر این، عملکرد عملاً صفر است.

2. Plugin Download Counter Advanced 1.1 همان دانلود شده است.

فوراً می گویم که واقعاً برای من هم کار نکرد ، بنابراین می توانید فقط به دلیل علاقه آکادمیک در مورد نصب و پیکربندی آن مطالعه کنید. در واقع، این همان افزونه است، فقط کمی تغییر یافته است. خداروشکر با اینکه آموزش ترجمه نشده ولی میتونید به صورت عادی بخونید و سعی نکنید منظور مترجم رو متوجه بشید. به هر حال، در پنل مدیریت - به نظر می رسد یک افزونه کاملاً متفاوت است که به روز رسانی را ارائه می دهد (بله، انجیر). مشابه پلاگین قبلی صفحه آن قرار داشت و به همین ترتیب نویسنده بیش از 4 سال است که از آن پشتیبانی نمی کند. بر اساس قیاس، ما یک پوشه دیگر برای آن در فهرست افزونه ها ایجاد می کنیم، مال من دانلود-counter است، همه فایل ها را آنجا می اندازیم. البته تنظیمات غنی‌تر به نظر می‌رسند، اگرچه سرعت دانلود بلافاصله برای همه فایل‌ها محدود شده است و برای هر یک به صورت جداگانه تنظیم نشده است. فایل download-manager..php کجاست (نام فایل را در آخر فراموش نکنید، اما همه دانلودها کجا هستند - اولین بار حدس زدم که مرا در شگفتی وحشتناکی فرو برد. همانطور که بعداً معلوم شد، حدس زدم با نام دایرکتوری که دانلودها را در آن قرار می دهم، اینجا منطق من 100٪ مانند نویسنده افزونه کار می کند.

نام پوشه‌هایی را که روی سرور داریم در فهرست دانلودها (در تنظیمات «دسته‌ها و فهرست‌ها») اضافه می‌کنیم تا انتخاب مسیر فایل‌ها آسان‌تر شود. اگر آنها را اضافه نکنید، باید همه چیز را در ریشه دانلودها دانلود کنید. ذخیره کنید، می توانید دانلودها را اضافه کنید. در اینجا چیزی است که ما تقریباً دریافت می کنیم.

حالا سعی می کنیم در پست درج کنیم. ما یک پیوند اضافه می کنیم، در آن پیوند خود را به کد تغییر می دهیم که مستقیماً در تنظیمات افزونه صادر می شود. و سپس ... و انجیر به شما! خطای HTTP 500 (خطای سرور داخلی): هنگامی که سرور تلاش می کرد درخواست را انجام دهد، وضعیت غیرمنتظره ای رخ داد. خوب، من فقط می خواستم به شما بگویم که چگونه یک شمارنده را مستقیماً به پست اضافه کنید، چه می شود اگر لینک داخل آن باشد برای تحقق آن

ABAP

&آن؛ ahref= "http://chewriter..jpg" />

سپس می توانید دکمه دانلود را نمایش دهید - واقعاً کج است. این افزونه برای شماست، وقت خود را تلف کردید. او به طور خاص آماری را حفظ نمی کند، زیرا اشکال در کجاست، ما آن را متوجه نمی شویم.

این دقیقا همان پلاگینی است که دانلود Counter Advanced فوق برای به روز رسانی به آن پیشنهاد شده است. خوب، او پیشنهاد می دهد - و خوب، بیایید دانلود کنیم، ببینیم. این افزونه بیش از 3 سال است که به روز نشده است و برخی از کاربران حتی خود کدهای آن را اصلاح کردند. این کاملاً با موفقیت نصب شده است ، زهد تنظیمات باعث خوش بینی نمی شود. به هر حال، خوب انجام شد، آنها حدس زدند که تنظیمات را کجا قرار دهند - بدتر از مورد قبلی نیست. ما شمارنده ها را در صفحه تنظیمات اضافه می کنیم، به نظر می رسد همه چیز همانطور که باید برجسته شده است.

بیایید ببینیم چه چیزی با افزودنی به پست داریم. بله بدون دکمه و، البته، همانجا فراموش کردم، همه چیز شهودی است. بیایید به دستورالعمل ها برویم. لازم است یک ساختار پیچیده متشکل از کدهای کوتاه مانند ، دانلود شده مسدود شود و در عین حال (احتمالاً به دلیل NC) واقعاً چیزی به حساب نمی آید.

بنابراین، دیگر مورد توجه قرار نمی گیرد، همراه با افزونه Download Counter Chart که به آن می رود و اطلاعات را به صورت گرافیکی نمایش می دهد، انجام نمی دهیم.

نوشته هموطن ما اما متاسفانه تنها کاری که از دستش بر می آید این است که تعداد دانلود کننده های فایل را در کنار نام آن نمایش دهد - نه آمار و نه چیز دیگری ارائه نشده است. با این حال، اگر از طرفداران مینیمالیسم هستید، این همان چیزی است که به آن نیاز دارید. فقط فراموش نکنید، هیچ دکمه ای وجود ندارد، یک کد کوتاه مانند


پیشخوان دانلود خودت انجام بده برای وردپرس

باید به صورت دستی وارد شود. خیلی خوب است که نویسنده همه چیز را با جزئیات نقاشی کرده است، من مجبور نبودم آن را برای خودم آزمایش کنم.

خوب، اگر ما در مورد پلاگین های نوشته شده توسط افراد خود صحبت می کنیم، نمی توانیم یکی دیگر را ذکر نکنیم. مزیت بزرگ آن این است که به شما امکان می دهد نه تنها تعداد بارگیری فایل ها را بشمارید، بلکه فقط روی پیوندها کلیک کنید - مهم نیست که آنها به هر فایلی یا فقط به صفحه دیگری منتهی می شوند. یا به فایلی در صفحه شخص دیگری 🙂 او هم این را محاسبه می کند، یا بهتر است بگویم، از نظر تئوری، باید آن را محاسبه کند. آمارش هم خیلی داغ نیست، هیچ دکمه ای روی پنل ویرایش نیست، محدودیتی برای دانلود هم وجود ندارد. اما هنوز هم دیدن آن جالب است. پس دانلود و نصب کنید. در اصل، توضیحات نسبتاً مفصلی در وب سایت نویسنده وجود دارد، بنابراین من آن را زیاد پخش نمی کنم. همیشه باید در نظر داشته باشید که اگر می‌خواهید یک شمارنده روی یک فایل یا پیوند تنظیم کنید، باید یا از یک کد کوتاه از نوع آن استفاده کنید یا کلاس class = "count" را در لینک وارد کنید. این، البته، آزار دهنده است، با یک دکمه بسیار راحت تر خواهد بود. اما آزاردهنده ترین چیز این است که بعد از تمام حرکات، من هنوز نتوانستم آن را به درستی کار کنم - اگر از کد کوتاه استفاده می شد، خود لینک دانلود نمایش داده نمی شد و اگر از کلاس استفاده می شد، آمار پیوندها نمایش داده نمی شد. در پنل مدیریت ظاهر شود. اسکرین شات ها را می توان از نویسنده مشاهده کرد - اگر خود ایده را دوست دارید - آن را امتحان کنید، شاید موفق شوید.

در واقع، بسیار ساده است. بدون کد کوتاه و غیره مورد نیاز است. اما این افزونه فقط برای نویسنده آمار ارائه می دهد اما برای بازدیدکنندگان در کنار لینک فایل نمایش داده نمی شود.

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

تنظیمات شامل موارد زیر است:

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

با این حال، همه اینها فقط در صورتی کار می‌کند که شما (چگونه به زبان ساده...) اجازه ویرایش فایل htaccess را داشته باشید، یا اگر پیوند را مستقیماً با قرار دادن آن در آن مشخص کنید.

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

از نظر نمایش اطلاعات، این افزونه شباهت زیادی به آنچه در پاراگراف قبل مطرح شد، دارد. تفاوت آن در این است که به شما امکان می دهد آمار را به صورت جداگانه به صورت هفتگی، ماهانه، برای هر دوره و فقط 10 مورد برتر مشاهده کنید. از نظر قابلیت ها، بسیار بدتر است، هیچ آماری از آخرین بارگیری یا یک فایل خاص وجود ندارد، چه بسا محدودیت هایی برای دانلود فایل ها ایجاد کند. هیچ سند روشنی وجود ندارد. من این تصور را داشتم که این فقط نوعی سوء تفاهم است و نه یک افزونه. من حتی نمی خواهم اسکرین شات بدهم، اما برای عینی بودن، همچنان به آنها حق چاپ می دهم.

خب، به چیزی کم و بیش ارزشمند رسیدیم. نزدیک به نیم میلیون دانلود چیزی می گوید. صفحه رسمی افزونه اینجاست. برای درج یک فایل در یک پست، باید از فلش بالای ویرایشگر بصری استفاده کنید (آیکون خود در آن ظاهر نمی شود)

و در پنجره ای که ظاهر می شود، فایل مورد نیاز را انتخاب کنید (این یک مثال است اگر قبلاً از طریق FTP آپلود شده است)

سپس بر روی دکمه «ذخیره دانلود جدید» کلیک کنید

و با رفتن به صفحه بعد، فرمت دانلود را انتخاب کرده و بر روی Insert into post کلیک کنید. ممکن است هیچ اتفاقی نیفتد. این افزونه کمی باگ است آخرین نسخه هاوردپرس بنابراین، شما باید علاوه بر این، روی لینک View Downloads کلیک کنید

و در حال حاضر پس از آن ابتدا فرمت دانلود را انتخاب کنید، روی پیوند Insert در کنار فایلی که می خواهید درج کنید کلیک کنید.

پس از آن، کد کوتاه مربوطه از نوع در پست ظاهر می شود

ABAP

[downloadid="7592" format="1"]

این افزونه به پیکربندی دستی خوب نیاز دارد، اما WYSIWYG ارائه نشده است. خوب است که فقط یک بار باید آن را تنظیم کنید. مستندات دقیق در اختیار نویسنده است.

در اینجا یک نمونه راه اندازی است:

ABAP

(عنوان)

&آن؛ ahref= "(url)" title="دانلود (بازدید،"ни разу","1 раз","% раза"}">{title}!}

لازم به ذکر است که declension ها پشتیبانی نمی شوند، یعنی. اگر فایل 21 بار دانلود شده باشد، و شما "زمان" در قالب خود داشته باشید، تا حدودی غیر روسی به نظر می رسد.

و در اینجا گزینه دکمه وجود دارد:

ABAP

- (توضیحات)، (اندازه)، بارگیری (تاریخ"Y-m-d")، بارگیری (بازدید) بار

&آن؛ ahref= "(url)" title="دانلود (بازدید،"ни разу","1 раз","% раза"}">!} - (توضیحات)، (اندازه)، بارگیری (تاریخ"Y-m-d")، بارگیری (بازدید) بار

به نظر می رسد که:

خوب، پس از کمی اصلاح، به نظر می رسد (هنوز بدون دکمه):

کد خط:

ABAP

(نماد_نوع فایل) (عنوان)(اندازه فایل: (اندازه)، آپلود: (تاریخ، دی ماه سال قبل)، بارگیری (بازدید))
(شرح)

لیست احتمالات بسیار گسترده است:

  • شما می توانید فایل ها را با کمک آن آپلود کنید (با کلیک بر روی فلش)، و مکان آنها را مشخص کنید، اگر قبلا از طریق FTP آپلود شده اند، به سادگی می توانید URL را مشخص کنید.
  • مکان واقعی فایل را پنهان می کند، می توانید هر ترکیب URL لازم را جایگزین کنید
  • می توانید از دکمه دانلود، از جمله دکمه دانلود خود استفاده کنید
  • دانلودها توسط ادمین و تمام IP های غیرضروری موجود در لیست محرومیت شمارنده را محاسبه نکنید
  • تعداد بارگیری‌های مکرر در مدت زمان معین از همان IP
  • می توانید چندین فرمت - با تصویر، با شمارنده، بدون شمارنده و غیره تنظیم کنید و از هر یک از آنها در موقعیت مناسب استفاده کنید.
  • گزارش دانلود در قالب یک فایل csv آپلود شده است

اگر هر فایل mp3 یا ویدیویی آپلود شده است، باید برای آنها مشخص کنید، دانلود اجباری کنید یا نه. اگر force - سپس با کلیک بر روی آن، دانلود می شود، اگر تیک زده نشود - پخش شود، سپس ذخیره شود - کلیک راستموش. می خواهم توجه داشته باشم که فایل های آپلود شده با کمک آن در جایی قرار نمی گیرند که دایرکتوری ویژه شما برای فایل ها ایجاد شده است، بلکه در wp-content/uploads/downloads/ ایجاد شده توسط آن - شما باید این را به خاطر بسپارید، و همچنین این واقعیت را که هنگام حذف آنها از آمار - فایل ها از نظر فیزیکی نیز از سرور حذف می شوند. با مواردی که از طریق FTP آپلود می شوند - همه چیز خوب است. به علاوه، اگر پیوندی را در پست‌های مختلف به یک فایل وارد کنید، متوجه نشدم که آیا آنها را خلاصه می‌کند یا خیر. متأسفانه از هیچ محدودیتی برای دانلود پشتیبانی نمی کند، به جز این که می توانید از دانلود همه جلوگیری کنید، به جز کاربران ثبت نام شده. هنگامی که می خواهید نام فایل را در خط پایین مرورگر نمایش دهید یا باید آن را به شناسه آن تغییر دهید - باید به یاد داشته باشید که به تنظیمات -> پیوندهای ثابت بروید و پیکربندی را در آنجا ذخیره کنید تا همه چیز به درستی ثبت شود. در htaccess - بدون این، فایل ها دانلود نمی شوند.!

آمار در سه مکان به طور همزمان نمایش داده می شود - در کنسول، در اطلاعات مربوط به فایل ها، و در گزارش های دانلود. این باعث ایجاد ناراحتی های خاصی می شود، به عنوان مثال، زمانی که باید ببینید چه زمانی یک فایل برای آخرین بار دانلود شده است، اما می توانید آمار را در قالب یک فایل csv آپلود کنید و سپس آن را در اکسل مرتب کنید. با در نظر گرفتن این واقعیت که اکسل توانایی شیطانی برای ساخت جداول و نمودارهای لازم را دارد، پس شاید بد نباشد. با این حال، من فکر می کنم اسکرین شات ها بیشتر می گویند:

خوب، یک اسکرین شات از خود لاگ:

در عین حال، یک مزیت بزرگ این است که ویجتی با آماری مانند زیر در کنسول ظاهر می شود:

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

این افزونه توسط همان نویسنده افزونه WP-Polls نوشته شده است که من برای مثال در این سایت از آن استفاده می کنم. اگرچه در مقایسه با آن از مرتبه‌ای کم‌تر محبوبیت برخوردار است. اما بیایید ببینیم آیا شایسته است یا خیر. تمام اسناد را می توان در وب سایت نویسنده یافت. در هسته خود، این افزونه کاملاً مشابه قبلی است - قالب به همین ترتیب نوشته شده است، هیچ محدودیتی برای دانلود وجود ندارد، به جز برای کاربران ثبت نام شده یا ثبت نام نشده، همچنین لازم است از یک کد کوتاه فرم استفاده کنید.

ABAP

[downloadid="7592"]

و برای بقیه نکات:

  • شما می توانید فایل ها را هم با کمک آن آپلود کنید (تا دو مگابایت، خوب، یا چند مگابایت در php.ini مشخص کرده اید)، و مکان آنها را مشخص کنید، اگر قبلا از طریق FTP آپلود شده اند، می توانید به سادگی URL را مشخص کنید.
  • مکان واقعی فایل را پنهان می کند، اما نمی توان هیچ ترکیب URL لازم را جایگزین کرد، فقط چند گزینه ثابت وجود دارد، گزینه اصلی برای من کار نکرد
  • می توان آن را پیکربندی کرد تا اطلاعات مربوط به اندازه فایل، تعداد دفعات دانلود و زمان دانلود را به بازدیدکنندگان نمایش دهد.
  • می توانید یک نماد برای انواع فایل های مربوطه نمایش دهید
  • می توانید شمارنده را بازنشانی کنید یا مقدار دلخواه را تنظیم کنید

با این حال، برخی از تفاوت ها نیز وجود دارد. اولاً، هیچ دکمه ای در ویرایشگر بصری وجود ندارد که بتوان از آن برای درج کد کوتاه استفاده کرد. بلکه یک دکمه وجود دارد اما برای استفاده از آن ابتدا باید یک شمارنده برای فایل در تنظیمات افزونه اضافه کنید و سپس این دکمه شناسه پیشخوان را مستقیماً به پست اضافه می کند. در مرحله دوم، تنها یک الگو وجود دارد، و خروجی برای فایل های مختلفاطلاعات مختلف کار نخواهد کرد. از مزیت های آمار، نشان می دهد که آخرین بار چه زمانی فایل دانلود شده است، در غیر این صورت تنها موارد منفی وجود دارد - بدون آپلود در یک فایل csv، عدم مشاهده افرادی که دانلود کرده اند (هیچ IP وجود ندارد)، توزیع بر اساس تاریخ وجود ندارد.

اما آیکون ها زیباتر هستند (بعداً آنها را به افزونه قبلی وصل کردم). نتیجه کار او به شرح زیر است:

همچنین، هنگام حذف یک رکورد از پایگاه داده، می پرسد که آیا لازم است خود فایل نیز حذف شود یا آن را ترک کنید. اما از نظر کلیت خصوصیات، من آن را کمتر از قبلی دوست داشتم - حداقل به این دلیل که باید فایل را جداگانه خارج از پست درج کنید، با این حال، هیچ منفی خاصی ندارد - انتخاب بین آنها یک موضوع سلیقه ای است، اولی گزینه های بیشتر، آمار دقیق تر، دومی - آمار کمی راحت تر (البته ضعیف تر) و ویژگی های کمتری دارد.

توپخانه سنگین وارد عمل شد. این افزونه عمدتا روسی شده است و یک مدیریت دانلود است و نه یک شمارنده. امکان محدود کردن سرعت دانلود و تعداد دانلود هر نفر در روز وجود دارد.

اما می توانم بگویم که برخی از ویژگی های این افزونه زائد است و موارد ضروری از نظر آماری کافی نیست. تنظیمات زیاد، ویجت های دانلود، یک سیستم همگام سازی پیچیده، سیستمی برای نمایش تگ های mp3، نمایش فایل های flv، سازماندهی ذخیره سازی فایل های کوچک، نمایش تمام فایل های مشخص شده در صفحه در ابتدا یا انتهای پست و غیره. ، و غیره.

من حتی نمی خواهم از تمام تنظیمات اسکرین شات بدهم.

با این حال، با همه اینها - برای اینکه قالب را به زیبایی در پست نشان دهم - مجبور شدم فایل استایل را در آن ویرایش کنم و عرض آن را کاهش دهم. به علاوه، برای نمایش قالب پیش فرض، پس از درج کد کوتاه با دکمه لازم است

نام قالب را با قلم در کد وارد کنید. برخی تضاد با نام روسی. به هر حال، به نظر می رسد (من سه نوع قالب را به طور همزمان ارائه می دهم):

تعداد - از طریق یک stump-deck (خوب، یا بیش از یک بار دانلود از IP به حساب نمی آید، من نمی دانم). آمار کمی کمتر از کاملا ضعیف است، بسیار شبیه به افزونه ای است که در بالا مورد بحث قرار گرفت.

به طور کلی، من با یک تصور باقی ماندم - سالم، اما احمق. مناسب برای برخی از ذخیره سازی فایل ها، و حتی پس از آن - اگر در ارتباط با هر افزونه دیگری باشد. من به او نگاه کردم - بله، و تخریب کردم.

صادقانه بگویم، وقتی شرح او را خواندم، فکر کردم - همین است، چیزی که من نیاز دارم!

شمارنده، حفاظت از رمز عبور، کد کوتاه درج شده توسط دکمه، دکمه قابل ویرایش و غیره.

و به نظر می رسد این است (او دو الگوی استفاده شده را به طور همزمان داد):

با این حال، برای اضافه کردن یک فایل، ابتدا باید یک شمارنده برای آن در افزونه ها اضافه کنید. ثانیاً، عملاً هیچ آماری وجود ندارد.

ثالثاً نمی توانید نمایش اندازه فایل را برای کاربر تنظیم کنید. چهارم، محدودیت سرعت دانلود وجود ندارد، فقط محافظت از رمز عبور برای فایل وجود دارد. قالب ها قابل ویرایش نیستند. و یک کتیبه بزرگ با پیشنهاد خرید نسخه پریمیوم به قیمت 45 دلار. خوب، به طور کلی، شما می فهمید. همه چیز خوشمزه برای مادربزرگ هاست. غیرفعال و تخریب شد. و قاب و دکمه های زیبا و ... - من خودم هر وقت بخواهم در سبک ها تجویز می کنم.

خلاصه

به روش استاندارد (با کپی کردن در دایرکتوری) نصب کنید wp-content/plugins/download-monitor/، اجازه به روز رسانی کنید، همه نمادها را با نمادهایی از بایگانی در فهرست جایگزین کنید wp-content/plugins/download-monitor/img/filetype_icons/و فعال کنید.

در آینده، اگر به دستم برسد، به این فکر می کنم که با استفاده از css3 پیوندهایی به فریم های زیبا بسازم که به احتمال زیاد در مورد آن نیز خواهم نوشت. با ما همراه باشید 🙂

به روز رسانی اکنون نویسنده افزونه WordPress Download Monitor را دوباره طراحی کرده و نسخه ای کاملاً متفاوت از نسخه اصلی ایجاد کرده است. من آن را بررسی کردم، اما آن را خیلی کمتر دوست داشتم، زیرا قالب فرمی که لینک دانلود شبیه آن است اکنون به راحتی قابل ویرایش نیست. نویسنده تصمیم گرفت که نمایش های از پیش تعیین شده آماده کافی باشد. به عنوان مثال، اگر در منوی دانلودها، سپس - تنظیمات، نمای مورد نظر را از شش مورد از پیش تعیین شده انتخاب کنید، روی ذخیره کلیک کنید.

سپس هنگام انتخاب گزینه دوم، چیزی شبیه به زیر دریافت می کنید:

آن ها بر نسخه جدیداستفاده از خطی که در توضیحات ارائه کردم کار نمی کند، اما باید یک فایل php ویژه ای که این قالب خروجی توصیف می کند، بنویسید. اما غم انگیزترین چیز حتی این نیست - بلکه این واقعیت است که این فایل php، اگر در دایرکتوری با افزونه قرار داده شود، هر بار که افزونه به روز می شود، رونویسی می شود. و اگر آن را در دایرکتوری با موضوع قرار دهید، پس از تغییر موضوع (اگرچه این، البته، خیلی کمتر اتفاق می افتد). اما در هر صورت نوشتن آن کار نسبتاً پر زحمتی است و تا کنون تمایلی به انجام آن ندارم. بنابراین تنها مزیت افزونه به روز شده

اول از همه، من می خواهم برای همه یک آخر هفته خوب و اوقات خوبی را آرزو کنم! و قسمت آخر رو براتون دارم شمارنده دانلود فایل، که به صورت کامل برای شما به صورت تصویری ارائه شده است. قبل از شروع مطالعه این مطالب، به شما توصیه می کنم با قسمت اول که یک هفته پیش منتشر شد و یک قسمت خالی در آنجا ساخته شد، آشنا شوید.

در این درس، من همه چیز را با جزئیات نقاشی نمی کنم، زیرا یک درس ویدیویی برای این وجود دارد. به طور خلاصه، من می خواهم فقط دو فایل را به شما ارائه دهم - download.jsو download.php، که با هم کار می کنند و با روش درخواستی را تشکیل می دهند آژاکس.

گام اول.فایل download.js

ابتدا باید یک پوشه ایجاد کنیم jsو یک فایل در آن ایجاد کنید download.js. پس از آن، بیایید کتابخانه را نیز لحاظ کنیم جی کوئریو فایل download.js.

حالا می توانیم فایل را شروع کنیم download.js. هنگام مدیریت رویدادها، ما ایجاد می کنیم جی کوئریسندی که با کلیک بر روی آن پارامتر ارسال می شود پیشخوان، که در مورد ما به معنای ورود در فیلد است دانلود. من می خواهم توجه داشته باشم و توجه شما را به این واقعیت جلب کنم که ما از روش استفاده می کنیم شکافبرای جدا کردن پیوند بین خط، زیرا با اسلش از هم جدا می شود. هنگام انتقال آژاکسدرخواست، پارامترهای زیر مورد نیاز است: آدرس اینترنتی- آدرس صفحه درخواستی، نوعاطلاعات چگونه به سرور ارسال می شود؟ پستیا گرفتن, داده ها- نوعی داده که به صفحه درخواستی منتقل می شود.

روش را فراموش نکنید setTimeout، که به ما اجازه می دهد تا روند دانلود فایل برای سرورهای محلی را کمی کند کنیم، زیرا تاخیری وجود ندارد، بنابراین اسکریپت در زمان دانلود زمان واکنش نشان نمی دهد. بنابراین، این روش ضروری است. هر گزینه محل، مسیر کامل فایل های دانلود را می نویسیم.

jQuery(document).ready(function($) ($(".counter").on("click",function(event) (var counter = $(this).attr("href"); counter = counter. split("/"); event.preventDefault(); $.ajax((url:"download.php"، type:"post", data:(counter:counter) )); setTimeout(function () ( location= "http://"+document.domain+ "/counter_loadings_files/files/" + counter; ), 1000); )); ));

ضمناً می خواهم توجه داشته باشم که اگر نیاز به بررسی ارسال درخواست ها دارید، می توانید آژاکسیک درخواست برای درج تابع زیر که می تواند نتیجه ارسال را به شما بدهد. در مرحله دوم در کد php، من به شما می گویم چه چیزی در اینجا خواهد آمد. به عنوان مثال، به جای " همه چیز منتقل شد"- بنویس هشدار(res);

Success:function(res)( //همه چیز گذشت ), error:function()( //هیچ چیزی گذشت)

مرحله دوم.فایل download.php

به مرحله دوم می رویم و در اینجا باید به پرونده بپردازیم download.php، که در یک زمان نتیجه ای از فایل می گیرد download.js. اول از همه به دیتابیس وصل میشیم و بعد روش رو قبول میکنیم پستخود درخواست، یعنی پارامتر برای ما ارسال شد پیشخوان. در مرحله بعد، مقدار فیلد را به روز کنید دانلوددر پایگاه داده، اما همانطور که می بینید، این رویکرد کاملا صحیح نیست، زیرا یک بررسی وجود ندارد.

آماده ("بارگیری مجموعه مواد به روز رسانی = دانلود + 1 فایل WHERE=:counter"); $sql->execute(array(":counter"=>$counter)); ?>

بنابراین درخواست باید کمی بازنویسی شود تا ساختار صحیحی برای دریافت داده های ارسالی داشته باشد. ممکن است قبلاً حدس زده باشید که ما به یک شرط بر اساس متغیر در حال عبور نیاز داریم. پیشخوان.

برای مدت طولانی هیچ درسی در مورد PHP و MySQL وجود نداشت. امروز یک شمارنده دانلود ساده اما موثر ایجاد خواهیم کرد.

هر فایل یک ورودی در ردیف جدول پایگاه داده خواهد داشت. همین جدول تعداد بارگیری فایل ها را ذخیره می کند. PHP پایگاه داده را به روز می کند MySQL و کاربر را به فایل مورد نیاز هدایت کنید.

برای پیگیری تعداد دانلودهای هر فایل، باید آن را در یک پوشه قرار دهیدفایل ها و از یک URL خاص برای دسترسی به آن استفاده کنید.

مرحله 1 - XHTML

اولین قدم ایجاد نشانه گذاری برای اسکریپت ما است. این بسیار ساده است - ما داریممدیر فایل div، که حاوی یک لیست نامرتب است که در آن هر عنصر لیست مسئول یک فایل است.

فایل هایی که می خواهید دانلودها را ردیابی کنید در پوشه قرار می گیرندفایل ها در پوشه ریشه اسکریپت. PHP سپس تمام فایل ها را تکرار می کند و هر کدام را به عنوان آیتم لیست اضافه می کند (لی ) به یک لیست نامرتب.

demo.php


  • photoShot-1.0.zip 0 دانلود

توجه داشته باشید که ویژگی href links نام فایل را به عنوان پارامتر به آن ارسال می کند download.php. اینجاست که ردیابی دانلود وارد می شود.

لازم نیست همه چیز را به یک شکل نمایش دهید - فقط می توانید به آن پیوند دهید download.php در صفحات شما و همه دانلودها از بین نخواهند رفت.

گام 2 - css

پس از نشانه گذاری، به سراغ طراحی می رویم. css قوانین زیر اعمال می شودمدیر فایل div با شناسه (# نماد)، از آنجایی که فقط 1 بار در صفحه رخ می دهد و برای بقیه عناصر با نام کلاس.

styles.css

#file-manager (رنگ پس‌زمینه: #EEE؛ حاشیه: 1 پیکسل ثابت #DDD؛ حاشیه: 50 پیکسل خودکار؛ پد: 10 پیکسل؛ عرض: 400 پیکسل؛ )
ul.manager li( background:url("img/bg_gradient.gif") repeat-x مرکز پایین #F5F5F5؛ حاشیه: 1px جامد #DDD؛ حاشیه-بالای رنگ:#FFF؛ لیست-سبک: هیچ؛ موقعیت:نسبی . برچسب (پس‌زمینه رنگ:#64B126؛ حاشیه: 1 پیکسل ثابت #4E9416؛ رنگ: سفید؛ نمایشگر: هیچ‌کدام؛ اندازه قلم: 10 پیکسل؛ بالشتک: 2 پیکسل 4 پیکسل؛ موقعیت: مطلق؛ سمت راست: 8 پیکسل؛ متن-تزیین: هیچ‌کدام؛ متن -shadow:0 0 1px #315D0D؛ top:6px؛ /* CSS3 Rounded Corners */
-moz-border-radius:3px; -webkit-border-radius:3px; border-radius: 3px; ) span.download-count(color:#999; اندازه قلم:10px; padding:3px 5px; position:absolute; text-decoration:none; )

مرحله 3 -PHP

همانطور که قبلاً گفتم، PHP به دنبال فایل‌ها در پوشه فایل‌ها می‌گردد و هر فایل را به عنوان یک آیتم فهرست در یک لیست نامرتب فهرست می‌کند. بیایید نگاهی به نحوه انجام آن بیندازیم

demo.php- قسمت بالا

// کو گزارش خطاها: error_reporting(E_ALL^E_NOTICE); // : نیاز به "connect.php"; $extension=""; $files_array = array(); /* پوشه را باز کنید و تمام فایل ها را مرور کنید: */ $dir_handle = @opendir($directory) or die("در پوشه فایل شما خطایی وجود دارد!"); while ($file = readdir($dir_handle)) (/* پرش فایل های سیستمی : */ if($file(0)==".") continue; /* پایان() آخرین عنصر آرایه را برمی گرداند تولید شده توسط تابع explode(): */ $extension = strtolower(end(explode(."،$file))); /* پرش از فایل های php : */ if($extension == "php") continue; $files_array=$file; ) /* مرتب سازی فایل ها بر اساس حروف الفبا*/ sort($files_array,SORT_STRING); $file_downloads=array(); $result = mysql_query("SELECT * FROM download_manager"); if(mysql_num_rows($result)) while($row=mysql_fetch_assoc($result)) (/* کلید آرایه $file_downloads نام فایل خواهد بود, و شامل تعداد دانلودها می شود: */ $file_downloads[$row["filename"]]=$row["downloads"]; )

توجه کنید که چگونه همه ردیف‌ها را از جدول download_manager با mysql_query() انتخاب می‌کنیم و بعداً آنها را با نام فایل به‌عنوان کلید تعداد دانلودها به آرایه $file_downloads اضافه می‌کنیم. بنابراین، بعداً در کد، می‌توانیم $file_downloads["archive.zip"] را بنویسیم و تعداد دانلودها را چاپ کنیم.

در زیر می توانید کدی که عناصر لیست را تولید می کند را مشاهده کنید:

demo.php- بخش میانی

Foreach($files_array به عنوان $key=>$val) (echo "

  • ".$val." ".(int)$file_downloads[$val]." دانلود
  • "; }

    همه چیز به سادگی با یک حلقه foreach از آرایه $files_array انجام می شود. پس از آن، همه چیز با استفاده از اکو خروجی می شود.

    حالا بیایید نگاهی دقیق تر به نحوه کار ردیابی فایل بیندازیم.

    download.php

    // بررسی خطا : error_reporting(E_ALL^E_NOTICE); // فایل اتصال db را فعال کنید: require("connect.php"); if(!$_GET["file"]) error("Parameter Missing!"); if($_GET["file"](0)==".") error("فایل اشتباه!"); if(file_exists($directory."/".$_GET["file"])) ( /* اگر و بازدید کننده یک ربات جستجو نیست, تعداد دانلودها: */ if(!is_bot()) mysql_query(" INSERT INTO download_manager SET filename="".mysql_real_escape_string($_GET["file"])."" ON DUPLICATE KEY UPDATE downloads=downloads+1"); header("مکان: ".$directory."/".$_GET["file"]); خروج؛ ) else error ("این فایل وجود ندارد!"); /* کمک کننده های عملکرد: */ خطای تابع ($str) (die($str); ) تابع is_bot() ( /* این عملکرد بررسی روی ربات است*/ $botlist = آرایه("Teoma"، "alexa"، "froogle"، "Gigabot"، "inktomi"، "looksmart"، "URL_Spider_SQL"، "Firefly"، "NationalDirectory"، "Ask Jeeves"، "TECNOSEEK" "، "InfoSeek"، "WebFindBot"، "girafabot"، "crawler"، "www.galaxy.com"، "Googlebot"، "Scooter"، "Slurp"، "msnbot"، "appie"، "FAST"، "WebBug"، "Spade"، "ZyBorg"، "rabaz"، "Baiduspider"، "Feedfetcher-Google"، "TechnoratiSnoop"، "Rankivabot"، "Mediapartners-Google"، "Sogou web spider"، "WebAlta Crawler" "TweetmemeBot"، "Butterfly"، "Twitturls"، "Me.dium"، "Twiceler"); foreach($botlist as $bot) ( if(strpos($_SERVER["HTTP_USER_AGENT"],$bot)!==false) return true; // Is a bot ) return false; // ربات نیست)

    مهم است که بررسی کنید بازدیدکننده شما یک انسان است یا یک ربات موتور جستجو. ربات ها خوب هستند، اما اجازه ندهیم آمار ما را تحریف کنند. به همین دلیل است که ردیف در پایگاه داده تنها پس از بررسی ()is_bot به روز می شود.

    مرحله 4 -MySQL

    همانطور که در مرحله آخر اشاره کردیم، تعداد دانلودها به صورت یک ردیف در جدول download_manager ذخیره می شود. ابتدا بیایید نحوه عملکرد این پرس و جو را توضیح دهیم:

    download.php

    INSERT INTO download_manager SET filename="filename.doc" ON DUPLICATE KEY UPDATE downloads=downloads+1

    به MySQL می‌گوید که یک ردیف جدید را در جدول download_manager وارد کند و قسمت ردیف نام فایل را روی مقدار فایلی که برای دانلود فراخوانده شده است تنظیم کند. با این حال، فیلد نام فایل به عنوان یک شاخص منحصر به فرد در جدول تعیین شده است. این بدان معناست که هر ردیف فقط یک بار می تواند درج شود، در غیر این صورت یک خطای کلید تکراری رخ می دهد.

    این جایی است که قسمت دوم پرس و جو کار می کند - ON DUPLICATE KEY UPDATE به MySQL می گوید اگر فایل از قبل در پایگاه داده وجود دارد، یکی را به ستون دانلودها اضافه کند.

    بنابراین، فایل های جدید به طور خودکار در اولین بارگیری به پایگاه داده اضافه می شوند.

    مرحله 5 - جی کوئری

    برای انجام ردیابی بلادرنگ، خوب است پس از هر بار دانلود، شمارنده کنار نام فایل را به روز کنید.

    ما این کار را با jQuery انجام خواهیم داد:

    script.js

    $(document).ready(function()( /* کد پس از بارگذاری صفحه اجرا می شود*/ $("ul.manager a"). کلیک کنید(function()( var countSpan = $(".download-count",this); countSpan.text(parseInt(countSpan.text())+1);) ) )))

    ما به سادگی یک کنترل کننده کلیک را به لینک هایی که به فایل ها منتهی می شوند اختصاص می دهیم و به هر کلیک یک مقدار اضافه می کنیم.

    مرحله 6 -htaccess

    یک کار دیگر وجود دارد که باید انجام شود. Download.php کاربر را به فایل درخواستی هدایت می کند که به عنوان پارامتر ارسال شده است. با این حال، ممکن است متوجه شده باشید که مرورگرها سعی می کنند برخی از انواع فایل ها را مستقیماً باز کنند. همچنین باید دانلود آنها را آغاز کنیم. این کار را می توان با چند خط داخل فایل .htacess که در پوشه فایل ها قرار دارد انجام داد.

    برنامه ForceType/Octet-stream

    اکنون پیشخوان ما کاملاً آماده است!

    نتیجه

    برای اینکه دمو کار کند، باید جدول download_manager را در پایگاه داده MySQL دوباره ایجاد کنید. می توانید کد SQL مورد نیاز را در منابع پیدا کنید.

    پس از آن، داده های خود را برای اتصال به پایگاه داده در فایل configuration.php اضافه کنید.

    // Remove "Magic quote" mode conversion $_POST["content"] = addslashes($_POST["content"]);

    // بازنویسی محتویات فایل file_put_contents($_POST["filename"], "$_POST");

    4.9. شمارنده دانلود فایل

    عملکرد تمام شمارنده های دانلود فایل بر این اساس است که بازدیدکننده نه با خود فایل به عنوان لینک دانلود، بلکه با پیوند به اسکریپتی که دانلود را شمارش می کند و فایل را به مرورگر کاربر ارسال می کند، ارائه می شود.

    پیشخوان خود را به گونه ای می سازیم که پیوندهای دانلود فایل پیوندهایی به صفحه فعلی باشند و نام فایل را به عنوان پارامتر ارسال کنند، به عنوان مثال، index.php?down=archive.zip . اسکریپت بررسی می کند که آیا پارامتر down پاس شده است یا خیر، و در صورت تایید، بارگیری بایگانی را در فایل filecount.txt ثبت می کند. هنگامی که صفحه بارگذاری مجدد می شود، مقادیر شمارنده برای هر یک از بایگانی ها برای نمایش در پنجره مرورگر از فایل استخراج می شود. انتقال فایل برای دانلود با ارسال مکان سرصفحه HTTP برای بازدید کننده انجام می شود که مسیر بایگانی دانلود شده را نشان می دهد. اسکریپت شمارنده دانلود فایل ممکن است شبیه فهرست 4-31 باشد.

    لیست 4.31. شمارنده دانلود فایل

    // سطح رسیدگی به خطا error_reporting (E_ALL & ~E_NOTICE) را تنظیم کنید.

    // ثبت نام فایل ها در یک آرایه

    $file_name = آرایه("archive1.zip"،"archive2.zip"،"archive3.zip");

    // نام فایلی که آمار در آن ذخیره می شود $countname = "filecount.txt";

    // در صورت وجود فایل،

    // خواندن آمار فعلی در آرایه if(file_exists($countname))

    // محتویات پیشخوان را دریافت کنید

    $content = file_get_contents ($countname);

    // آرایه را بسته بندی کنید

    $count = unserialize ($content);

    // اگر چنین فایلی وجود ندارد، آن را ایجاد کنید

    // و بازنشانی آمار

    // آرایه $count را با مقادیر صفر foreach پر کنید ($file_name به عنوان $file)

    $count[$file] = 0;

    // آرایه را بسته بندی می کنیم و در شمارنده file_put_contents قرار می دهیم ($countname, serialize($count));

    // بررسی اینکه آیا مقدار پارامتر down ارسال شده است یا خیر

    // از طریق متد GET

    if(isset($_GET["پایین"]))

    // بررسی کنید که آیا مقدار پارامتر $_GET["down"] گنجانده شده است یا خیر

    // به آرایه $file_name

    if(in_array($_GET["down"],$file_name))

    // ما واقعیت دانلود این فایل را ثبت می کنیم

    // با کلید مقدار شمارنده را افزایش می دهیم

    // $_GET["پایین"] یک به یک

    $count[$_GET["down"]]++;

    // بازنویسی فایل شمارنده file_put_contents($countname, serialize($count));

    echo "فایل $file توسط ".intval($count[$file]) بارگیری شد" بار
    ";

    نام فایل های آپلود شده در آرایه $file_name ذخیره می شود، افزودن یک آرشیو جدید منجر به ثبت خودکار آن در سیستم می شود. پیش ثبت نام در آرایه به چند دلیل ضروری است. ابتدا، هنگام پذیرفتن نام آرایه از طریق پارامتر down، باید بررسی کنید که آیا در بین فایل های مجاز برای آپلود قرار دارد یا خیر. ثانیا، مدیریت نام فایل ها در یک آرایه بسیار راحت تر است. بنابراین آرایه $count که تعداد دانلودهای فایل را ذخیره می کند، به طور خودکار بر اساس آرایه فایل های ثبت شده در سیستم ساخته می شود.

    بسته بندی یک آرایه در یک رشته با استفاده از تابع serialize() و سپس باز کردن آن در یک آرایه با استفاده از تابع unserialize() راحت است.

    توجه داشته باشید

    مهم است که به خاطر داشته باشید که تمام هدرهای HTTP باید قبل از ارسال محتوای اصلی ارسال شوند، در غیر این صورت ارسال نخواهند شد و مفسر PHP اخطار "هشدار: نمی توان اطلاعات هدر را تغییر داد - سرصفحه ها قبلا ارسال شده اند" را صادر می کند.

    (هشدار: اطلاعات هدر را نمی توان تغییر داد - سرصفحه ها قبلا ارسال شده اند). این توسط پروتکل HTTP دیکته می شود: ابتدا سرصفحه ها ارسال می شوند، سپس محتوای سند، بنابراین هر خروجی به پنجره مرورگر به عنوان پایان ارسال سرصفحه ها و آغاز ارسال بدنه سند درک می شود. اگر خروجی به پنجره مرورگر قبل از ارسال سرصفحه ها اجتناب ناپذیر است، باید به توابع کنترل خروجی متوسل شوید، تمام خروجی ها را بافر کرده و در انتهای اسکریپت ارسال کنید.

    همانطور که در لیست 4.31 می بینید، اسکریپت اولین وضعیت اجرا را کنترل می کند که filecount.txt وجود ندارد - به طور خودکار در بارگذاری صفحه اول ایجاد می شود و با مقادیر صفر برای هر فایل در آرایه $file_name ایجاد می شود. خروجی اسکریپت در لیست 4.31 در شکل 1 قابل مشاهده است. 4.4.

    برنج. 4.4. نتیجه شمارنده فایل

    4.10. ذخیره فایل های متنی و گرافیکی

    کلیک کردن روی پیوند به فایل های متنی یا فایل های HTML منجر به نمایش آنها در پنجره مرورگر می شود که همیشه راحت نیست، به خصوص اگر فایل مورد نظر برای دانلود باشد. همین سرنوشت در انتظار فایل های گرافیکی و به طور کلی هر فایلی است که مرورگر بتواند نمایش دهد. مرورگر بازدیدکننده محتوای فایل را از سرور "یاد می گیرد"، زیرا هر فایل همراه با هدرهای HTTP است که به مشتری در مورد محتوا، اندازه فایل دانلود شده، نیاز به تنظیم یک کوکی و غیره اطلاع می دهد. اگر نوع فایل باشد. نمی توان تعیین کرد، به سادگی به عنوان جریان باینری ارسال می شود.

    شما می توانید این رفتار را با ارسال سرصفحه های HTTP نشان داده شده در فهرست 4-32 سرکوب کنید.

    لیست 4.32. اسکریپت برای ذخیره فایل های متنی و تصویری

    $filename = basename($_GET["down"]); header("Content-Disposition: پیوست؛ filename=$filename"); header("Content-type: application/octet-stream"); header("طول محتوا: ".filesize($_GET["پایین"]));

    echo file_get_contents($_GET["down"]); ?>

    اسکریپت در لیست 4-32 یک نام فایل را به عنوان پارامتر GET می گیرد، برای مثال،

    index.php?down=filetext.txt . با استفاده از تابع basename() نام را بازیابی می کند

    فایل (در صورتی که پارامتر down GET حاوی مسیری به یک فایل باشد). هدر Content-Disposition HTTP نام فایلی که باید ذخیره شود را مشخص می کند که با ویژگی filename مشخص می شود. در اسکریپت بالا، پارامتر نام فایل با نام فایل در حال ارسال یکسان است، اما می توان یک نام دلخواه را به عنوان پارامتر نام فایل ارسال کرد. هدر HTTP نوع محتوا نشان می دهد که داده های ارسالی باینری هستند و نباید توسط مرورگر تفسیر شوند. هدر HTTP با طول محتوا، اندازه فایل را به مشتری منتقل می کند. خط آخر محتویات فایل را نشان می دهد که از پارامتر $_GET["down"] عبور داده شده است، که با استفاده از تابع file_get_contents() بازیابی می شود. خروجی اسکریپت در لیست 4.32 در شکل 1 نشان داده شده است. 4.5.

    توجه داشته باشید

    مهم است که پس از خروجی محتویات فایل، هیچ چیز دیگری به جریان خروجی نشود: نه توسط ساختار اکو، و نه با خروجی مستقیم - در غیر این صورت همه چیز به انتهای فایل پیوست خواهد شد. این برای فضاهای ممکن و همچنین خطوط جدید بعد از تگ ?> دنباله‌دار اعمال می‌شود.

    برنج. 4.5. کادر گفتگوی آپلود فایل

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

    هنگامی که یک فایل خاص را برای دانلود رایگان در معرض دید قرار می دهید، مهم است که بدانید چند بار دانلود شده است. این اول از همه برای آمار ضروری است که تجزیه و تحلیل آن به تعیین سودمندی اطلاعات برای کاربر نهایی کمک می کند.

    چگونه یک شمارنده دانلود در سایت وردپرسی تنظیم کنیم؟

    در میان ابزارهای وردپرس، هیچ راهی برای مشاهده این آمار وجود ندارد. بنابراین، ما از یک راه حل شخص ثالث - افزونه Kama Click Counter استفاده خواهیم کرد.

    افزونه کاما شمارنده کلیک

    پلاگین رایگان کاما شمارنده کلیکتمام ابزارهای لازم برای شمارش دقیق تعداد دانلودهای یک فایل خاص را فراهم می کند. بنابراین، ابتدا باید آن را نصب و فعال کنید. برای مثال، در صفحه رکورد، پیوندی به نمایش داده شود pdfفایلی که برای آن تعداد دانلودها را می شماریم. لازم به ذکر است که فایل ها به روش های استاندارد در سایت آپلود می شوند. کتابخانه های رسانه ایوردپرس ( فایل های رسانه ای -> افزودن جدید). در مرحله بعد، باید پست یا صفحه را برای ویرایش باز کنید. در قسمت محتوا باید مکان نما را در جایی که لینک فایل قرار می گیرد قرار دهید و روی دکمه ای که در نوار ابزار ظاهر می شود کلیک کنید. ویرایشگر بصری.

    در یک پنجره پاپ آپ، افزونه از شما می خواهد فایلی را که قبلا دانلود کرده اید انتخاب کنید. برای انجام این کار، روی دکمه با نماد ذره بین کلیک کنید.

    در کتابخانه رسانه، فایل مورد نظر را انتخاب کرده و روی دکمه کلیک کنید یک فایل را انتخاب کنید.

    در نتیجه، یک کد کوتاه ویژه در قسمت محتوای پست یا صفحه درج می شود که برای نمایش لینک دانلود فایل استفاده می شود.

    پس از به روز رسانی مواد (دکمه تازه کردن) می توانید برای مشاهده آن به سایت مراجعه کنید.

    این افزونه همچنین قادر است آمار دانلود را در قسمت کاربری سایت - در ویجت نشان دهد. توجه داشته باشید که افزونه به طور پیش فرض اعداد خاصی را در ویجت نشان نمی دهد که چه تعداد و چند بار دانلود شده است. فقط لیستی از فایل هایی که اغلب دانلود می شوند نمایش داده می شود. برای این کار به بخش مدیریت بروید ظاهر -> ابزارکو ویجت را بکشید KSS: برترین دانلودهابه محل نوار کناری مورد نظر.

    مشاهده می شود که چندین گزینه در ویجت موجود است که به شما امکان می دهد لیست را تغییر دهید.

    در اینجا می توانید پارامترهای اساسی زیر را تنظیم کنید:

    • عنوان ویجت (فیلد سرتیتر);
    • تعداد فایل های خروجی در لیست ( چند لینک برای نشان دادن);
    • مرتب سازی نتایج ( چگونه نتیجه را مرتب کنیم؟);
    • سفارشی کردن ظاهر قالب (بلوک نمونهو CSS قالب).

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

    پس از انجام و ذخیره تمامی تنظیمات ویجت (دکمه صرفه جویی) نتیجه را می توانید در سایت مشاهده کنید.

     
    مقالات توسطموضوع:
    دانلود نسخه آزمایشی آنتی ویروس Yandex
    محصولات آزمایشگاه کسپرسکی برای بسیاری شناخته شده است و بسیار محبوب هستند. با این حال، هزینه بالای برنامه ها اکثر کاربرانی را که به سادگی حاضر نیستند برای "خوک در یک پوک" - برای برنامه ها، عملکرد و کارایی پرداخت کنند، می ترساند.
    چگونه به بیت بودن سیستم عامل و پردازنده در ویندوز پی ببریم
    پس از خرید یک لپ تاپ جدید یا مونتاژ یک کامپیوتر رومیزی، بسیاری از کاربران با این سوال مواجه می شوند: 32 یا 64 بیت، کدام سیستم را نصب کنیم؟ موضوع بسیار جالب است و در این نشریه ما با جزئیات تمام تفاوت های ظریف مربوط به آن را در نظر خواهیم گرفت
    تبدیل از djvu به pdf
    چگونه djvu را به pdf تبدیل کنیم تا متن سند تا حد امکان خوانا باقی بماند؟ برای انجام این کار، باید از برنامه ها و خدمات اثبات شده استفاده کنید، چنین اسنادی را می توان در رایانه، تلفن، تلفن های هوشمند مشاهده کرد، زیرا تعداد زیادی از آنها وجود دارد.
    شبکه های cpa روسیه.  شبکه های CPA - چیست؟  برنامه های وابسته شبکه های CPA: رتبه بندی، توضیحات و بررسی.  شبکه های CPA چیست؟
    تقریباً هر کاربر با کلمات ارزشمند CPA در اینترنت مواجه می شود، اما همه نمی دانند که چیست. در این مقاله به شما می گویم که CPA چیست و با چه چیزی خورده می شود و در اینجا همچنین با 13 شبکه برتر CPA در Runet آشنا خواهید شد. CPA و CPA چیست