Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [class] pobieranie plików z wrzuty
Zmorcia
post
Post #1





Grupa: Zarejestrowani
Postów: 234
Pomógł: 5
Dołączył: 26.01.2008
Skąd: Lutcza

Ostrzeżenie: (20%)
X----


Witam, dzis napisałem z nudów klasę do pobierania plików z wrzuty, mozna ja oczywiście rozbudować.

  1. <?
  2. // Autor Kuba `Zmorcia` Krupa
  3. // E-mail: ahn2@o2.pl
  4. // Www: callshot.eu
  5.  
  6.    class download {
  7.        public function pobierz($link, $portal){
  8.            $this->link = $link;
  9.            $this->portal = $portal;            
  10.                switch ($this->portal) {
  11.                    case 'wrzuta':
  12.                        $this->z = array('audio','film');
  13.                        $this->n = array('aud/file','vid/file');
  14.                        $this->view = str_replace($this->z, $this->n, $this->link);
  15.                        return $this->view;
  16.                    break;
  17.            }
  18.        }
  19.    }
  20.    
  21. $download = new download;
  22.  
  23. if(!isset($_POST['link'])){
  24. echo '<form method="post" action="">';
  25. echo '<input type="text" style="width: 300px" name="link">&nbsp;<br />';
  26. echo '<input type="radio" name="portal" value="wrzuta" checked="checked" />wrzuta<br />';
  27. echo '<input type="submit" value="pobierz">';
  28. echo '</form>';
  29. } else {
  30. header('location: '.$download -> pobierz($_POST['link'], $_POST['portal']).'');
  31. echo 'Pobieranie powinno nastapić w przeciągu kilki sekund!';
  32. }
  33. ?>


Miłego korzystania (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
pEbE
post
Post #2





Grupa: Zarejestrowani
Postów: 106
Pomógł: 3
Dołączył: 21.03.2006
Skąd: Sosnowiec

Ostrzeżenie: (0%)
-----


Nie jest to kwestia tego że serwer blokuje pobieranie danych z zewnątrz. Podejrzewam że wrzuta ma "czarną listę" serwerów z hostingiem i je po prostu blokuje.
Możesz to sam sprawdzić:
Na 000webhost: http://przemowo.site11.com/wrzuta.php
Skrypt zwraca:
  1. <Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided.</Message><RequestId>4A8C7919</RequestId><BucketName>c.wrzuta.pl</BucketName><KeyName>wa6738/1c2419fb001760824d0aff80</KeyName><HostId>fc18:15</HostId><Date>Fri, 26 Aug 2011 10:50:51 GMT</Date></Error>

Natomiast na localu działa jak najbardziej doskonale.

Kod pliku wygląda tak:
  1. <?php
  2.  
  3.  
  4. if( !isset($_POST['url']) )
  5. {
  6.  
  7. ?>
  8. <form method="POST">
  9. Link z wrzuta.pl: <input type="text" name="url" size="40">
  10. <input type="submit" value="Generuj"><br />
  11. <input type="checkbox" name="auto" value="1" disabled="disabled" /> Sciagnij automatycznie
  12. </form>
  13. <?php
  14.  
  15. }
  16. else
  17. {
  18.  
  19. $url = str_replace( 'http://', '', $_POST['url'] );
  20. $url_p = explode( '/', $url );
  21.  
  22. $xml_url = 'http://' . $url_p[0] . '/xml/plik/' . $url_p[2] . '/' . $url_p[3] . '/sr/' . round( rand()*1000000+1 );
  23. $xml = file_get_contents( $xml_url );
  24.  
  25. preg_match_all("/<fileId><!\[CDATA\[(.*)\]\]><\/fileId>/", $xml, $matches);
  26. $file = $matches[1][0];
  27.  
  28. preg_match_all("/<name><!\[CDATA\[(.*)\]\]><\/name>/", $xml, $matches);
  29. $name = $matches[1][0];
  30.  
  31. preg_match_all("/<mime><!\[CDATA\[(.*)\]\]><\/mime>/", $xml, $matches);
  32. $mime = $matches[1][0];
  33.  
  34. preg_match_all("/<size>(.*)<\/size>/", $xml, $matches);
  35. $size = $matches[1][0];
  36.  
  37. if( isset($_POST['auto']) and $_POST['auto'] == 1 )
  38. {
  39.  
  40. $ext = '';
  41. switch($mime)
  42. {
  43. case 'audio/mpeg': $ext = '.mp3'; break;
  44. case 'video/x-flv': $ext = '.flv'; break;
  45. case 'image/jpeg': $ext = '.jpg'; break;
  46. }
  47.  
  48. flush();
  49. header('Content-Description: File Transfer');
  50. header('Content-Type: '.$mime);
  51. header('Content-Disposition: attachment; filename="'.$name.$ext.'"');
  52. header('Content-Transfer-Encoding: binary');
  53. header('Expires: 0');
  54. header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
  55. header('Pragma: public');
  56. header('Content-Length: ' . $size);
  57. readfile($file);
  58. flush();
  59.  
  60. }
  61. else
  62. {
  63. echo 'Kliknij tu aby sciagnac: <a target="_blank" href="'.$file.'">'.$name.'</a>';
  64. }
  65.  
  66. }
  67.  
  68. ?>
Go to the top of the page
+Quote Post

Posty w temacie
- Zmorcia   [class] pobieranie plików z wrzuty   5.10.2008, 06:43:07
- - Spirit86   [PHP] pobierz, plaintext <?header('location...   5.10.2008, 07:44:26
|- - Zmorcia   Cytat(Spirit86 @ 5.10.2008, 08:44:26 ...   5.10.2008, 07:58:43
- - Dizzy   No no... Gratuluje choć nie napisałes skrypt zbyt...   5.10.2008, 07:57:20
- - bim2   Jak miałem 14 to umiałem odróżnić gdzie pakuję się...   6.10.2008, 16:03:03
|- - Zmorcia   Cytat(bim2 @ 6.10.2008, 17:03:03 ) Ja...   6.10.2008, 18:40:04
- - bim2   ja bym wtedy napisal to inaczej. (mam już napisaną...   7.10.2008, 14:38:50
- - pEbE   Odkopuję stary temat, ale jako że wrzuta już dawno...   1.08.2011, 13:41:51
- - Giluś   Cześć, to chyba nie działa Dałem taki kod: [PHP] ...   8.08.2011, 09:21:18
- - rav1989   Jak nie działa jak działa... Skrypt podaje Ci url ...   8.08.2011, 11:04:15
- - Giluś   A da się tak zrobić, aby od razu pobierało, wygene...   8.08.2011, 15:05:22
- - CuteOne   google -> header force download   9.08.2011, 14:16:52
- - seba123   I już nie śmiga, bo sygnatury są generowane prawdo...   26.08.2011, 03:27:49
- - pEbE   Może to i racja. U mnie na localhoście śmiga, ale ...   26.08.2011, 09:48:29
- - erix   Darmowe serwery mają wiele rzeczy zablokowane, wię...   26.08.2011, 10:58:58
- - pEbE   Nie jest to kwestia tego że serwer blokuje pobiera...   26.08.2011, 11:53:13
- - seba123   CytatPodejrzewam że wrzuta ma "czarną listę...   28.08.2011, 01:51:14
- - Macios25   CytatJedynym sposobem jest raczej pobranie pierw n...   31.08.2011, 17:30:34


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 18.10.2025 - 00:32