Video ve mp3 dosyaları gizle

2 Cevap php

Ben onlar php / mysql giriş oturum halinde dosyaları dinlemek / izlemek mümkün olması için insanlara ihtiyacımız var, video ve ses dosyaları olan bir site kodlama ama ben indirmek mümkün kayıt olmamış kişileri istemiyoruz dosyaları, ben dosyaya doğrudan erişimi engellemek ve sadece hesapları ile kullanıcı tarafından onlara erişimini izin gerekiyor.

2 Cevap

Ben Scott katılıyorum. Flaş muhtemelen gitmek için rota - halkın büyük çoğunluğu Flash eklentisi yüklü. Orada Java da ama benim deneyim Flash ile.

Ben senin soru hakkında biraz belirsiz değilim bu yüzden benim yanıtını açıklık getirelim. Siz ses ve video akışı için bir yol ve dosyaları kendilerini indirmek için bir yol hem de sunabilir. Akarsu I ses ve video çalar ancak sabit diskinize kaydedin değil sitenizde flash görüntüleyici var demek. Sen hem kayıtlı kullanıcıların yanı sıra misafirler için bu sunabilir. Ayrıca (eğer isterseniz) kayıtlı kullanıcıların dosyaları indirmek sağlayabilirsiniz.

Sen kullanıcılar ve misafirler eşyalarını izlemek izin ve kayıtlı kullanıcıların kaydolarak için bir ödül olarak indirme olanağı verebilir. Belki bunu yapmak istemiyorum - belki sadece kayıtlı kullanıcıların eşyalarını izlemek değil indirmek için izin istiyor. Bu da yapılabilir.

Ilerici ve streamin - flaş ses ve video oynatmak için iki seçenek vardır. Progressive flaş bir url bir ses / video dosyası oynar (yani http://www.example.com/video/video_1.flv). Flaş (sadece bir tarayıcı olur gibi) video indirme ve bu kapalı oynar. İndirilen dosya tarayıcınızın önbelleğinde saklanır. Bu ne istediğiniz değil.

Akış NetStream ve NetConnection sınıfları tarafından yapılır. Bu, bir dosyanın gerçek streaming ve sabit diskine kaydedilmiş değil. Eğer web sunucusu ile birlikte flash ses / video sunucusu gerekir böylece kesintisiz sınıflar yerine RTMP'yi HTTP kullanabilirsiniz ama yok.

Adobe'nin kendi Flash Media Server, Wowza ve Red 5 - Bildiğim üç flash video sunucuları vardır.

Bu bir ticari olmayan site ise Adobe'nin sunucu muhtemelen çok pahalı, pahalı.

I Wowza kullanın. Bu 10 eşzamanlı kullanıcılar için ücretsiz (ayaklarınızı ıslak almak için) ve 1000 $ ABD çok ticari olmayan bir site için çok pahalı olacağını, ancak sınırsız bir bağlantı sunucusu da var.

Üçüncü bir Red5 olduğunu. Bu tamamen ücretsiz bir açık kaynak kodlu bir flash medya sunucusudur. Ben bu konuda hiçbir deneyimi var bu yüzden ben kendi özellikleri ya da istikrar kanıtı olamaz.

Yani evet, ne yazık ki bazı basit PHP ve HTML daha fazla iş var. Kendi flash player (istemci görüntüleyici) kurmak ya da bir başkası inşa birini kullanabilir.

Bir çözüm Apache üzerinden bu dosyaları hizmet değil, ama PHP ile (as, from the PHP scripts, you know if the guy trying to download the file is logged or not) olur.

Kimse doğrudan dosyaları indirir absolutly emin olmak için, en az iki çözüm vardır:

First one (the best one, I think): Eğer yapabilirsen, web servers 'kökünün dışında bu dosyaları:

/.../www/               <-- this is your web root (DocumentRoot, with Apache)
/.../.../js/...
/.../.../css/...
/.../.../index.php
/.../.../download.php
/.../data/              <-- there, outside of the files served by Apache, you put your data
/.../data/my-music.mp3

Second one: Sen Apache üzerinden kimseden erişimi reddetmek için, "veri" dizininde bir .htaccess dosyasını kullanabilirsiniz; böyle bir şey yapacağım:

Deny From All


Then, your download.php script (or the equivalent) will get the id of the file, check for the users' access rights, and, if the user has access to the requested file :

  • send the right HTTP headers :
    • muhtemelen en az Content-Type ayarlamak isteyeceksiniz
    • Gibi Belki bazıları İçerik eğilim, içerik-uzunluk, ...
  • send the content of the file

Tabii ki, bu senaryoyu güvenli size kalmış, şimdi ;-)


As a sidenote : main drawback is that more stuff will have to be processed by PHP... might add some load to your server :-(