| Autor | Zpráva | ||
|---|---|---|---|
| joker0cz Profil * |
#1 · Zasláno: 12. 8. 2010, 19:47:48
Dobrý den,
potřeboval bych pomoct mám následující problém. Zakládám upload server a až do teď sem používal tento kód pro upload: index.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta name="generator" content="PSPad editor, www.pspad.com">; <title>DOWNLOAD</title> </head> <body> <form action="index.php" method="post" enctype="multipart/form-data"> <input type="file" name="fupload"> <input type="submit" value="Nahrát"> </form> <?php define("PREFIX", "awdefr_"); //7pismeny prefix function pekne_url($nadpisek) { $url = $nadpisek; $url = preg_replace('~[^\\pL0-9_]+~u', '-', $url); $url = trim($url, "-"); $url = iconv("utf-8", "us-ascii//TRANSLIT", $url); $url = strtolower($url); $url = preg_replace('~[^-a-z0-9_]+~', '', $url); return $url; } function utf2ascii($text) { $return = Str_Replace( Array("á","č","ď","é","ě","í","ľ","ň","ó","ř","š","ť","ú","ů","ý ","ž","Á","Č","Ď","É","Ě","Í","Ľ","Ň","Ó","Ř","Š","Ť","Ú","Ů","Ý","Ž") , Array("a","c","d","e","e","i","l","n","o","r","s","t","u","u","y ","z","A","C","D","E","E","I","L","N","O","R","S","T","U","U","Y","Z") , $text); $return = StrToLower($return); //velká písmena nahradí malými. return $return; } if (isset($_FILES['fupload'])) { $slozka = "upload"; // Zde si napište svojí složku, do které se budou soubory ukládat (bez lomítka) $nazev = PREFIX.date("Ymd").date("Hi").pekne_url(utf2ascii($_FILES['fupload']['name'])).".".strtolower(pathinfo($_FILES['fupload']['name'], PATHINFO_EXTENSION)); $cil = $slozka . "/" .$nazev; // Toto je promìnná $cil, která obsahuje adresáø, kde se má soubor uploadovat a taky název souboru. $nazev_souboru = $_FILES['fupload']['tmp_name']; // Zjistí doèastné umístìní souboru $copy = move_uploaded_file($nazev_souboru, $cil) // A tady zkopíruje soubor z doèastného umístìní do cílového souboru a složky or die ("Přenesený soubor nelze zkopírovat ".PREFIX.$_FILES['fupload']['tmp_name'].date("Ymd").date("Hi")); // A pokud se nepovede, tak vypíše tuto hlášku chmod ($cil, 0644); // Ještì na soubor vyhodíme funkci chmod, která zmìní jeho práva na maximum, pokud by soubor psal chybu zmìòte 0644 na 0777 if($copy == true){ // Pokud se kopírování provede úspìšnì echo "Soubor " .$_FILES['fupload']['name']. " byl úspěšně nahrán na server.<br /> Stáhnout: <a href='download.php?soubor=".substr($nazev, 7)."' title='Stáhnout'>".substr($nazev, 19)."</a><br />"; }else{ echo "Soubor nemohl být nahrán.\nPočet chyb: " . $_FILES['fupload']['error']; } } ?> </body> </html> a také soubor download.php <?php
define("PREFIX", "awdefr_");
if(isset($_GET["stahni"])){
if(file_exists("upload/".PREFIX.$_GET["stahni"])){
header("Content-Disposition: attachment; filename=".substr($_GET["stahni"], 12));
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Description: File Transfer");
header("Content-Length: " . filesize("upload/".PREFIX.$_GET["stahni"]));
readfile("upload/".PREFIX.$_GET["stahni"]);
}
else {echo "Soubor nenalezen.";}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="generator" content="PSPad editor, www.pspad.com">;
<?php
if(isset($_GET["soubor"])){
echo '<meta http-equiv="refresh" content="3;URL=?stahni='.$_GET["soubor"].'">';
}
?>
<title>DOWNLOAD</title>
</head>
<body>
<?php
if(isset($_GET["soubor"])){
echo "zobrazení reklamy";
}
?>
</body>
</html>jak jste si mohli všimnout je tam písmený prefix kvůli reklamě tento kód je tady. Jenomže jsem zjistil že lidi potřebujou vidět kolik toho nahráli tak jsem se musel přispůsobit a došel jsem k tomu (za pomocí uznávaného člena tohoto fóra) že použiju z těchto stránek tento kód, který si můžete stáhnout zde je to hotový příklad a vypadá to takhle. No a problém je v tom, že mi nejde předělat písmený prefix na ten nový kód (nikoliv ten co sem uváděl zde). Další věcí je že u kódu který je napsaný zde v tomto příspěvku se pouploadnutí zobrazil odkaz na link který už byl přepsaný tímto prefixem. Nevíte někdo jak bych to měl skloubit tak aby to šlo všechno (myšleno nový kód z uploadify.com, prefix a odkaz po uploadnutí na link kódovanej prefixem ? Zkoušel jsem všechno možný ale nikdy to nefungovalo tak jak mělo prosím o odpoved. Děkuji. |
||
| AM_ Profil |
#2 · Zasláno: 12. 8. 2010, 20:05:27
Tvůj příspěvek je lehce zmatený.
Zaprvé: nejen v diskusi, ale obecně jako webař, dávej do textu odkazu něco výstižnějšího, než zájmena. Odkaz je obvykle opticky hodně zvýrazněn, takže jeho text by měl být stručný a výstižný (zdrojový kód, stránka s uploadem, takhle vypadá když to nefunguje), a ne zájmeno (tady, těchto, zde, támhleto, tentononc). Zadruhé: k čemu je ten písemný prefix? proč by měl nějak souviset s reklamou? já bych reklamu při downloadu řešil takhle: - download link bude třeba na "down.php?file=test.jpg" soubor down.php: - zkontroluje, zda v $_SESSION['down'] je test.jpg - pokud ano, normálně nechá stáhnout obsah souboru - pokud ne, zobrazí reklamu, nastaví onu hodnotu do SESSION a za pár vteřin se refreshuje (session už bude nastavená, takže se provede stažení). Ten prefix mi připadá dost nesmyslný, pokud to má být ochrana proti tomu, aby uživatel nemohl stáhnout soubor přímo, není nad to dát do složky "upload" soubor .htaccess s řádečkem "deny from all" - soubory tedy nepůjdou odkázat přímo, ale stáhnout jen skrz stahovací skript. |
||
| joker0cz Profil * |
#3 · Zasláno: 12. 8. 2010, 20:14:01
takbych vás poprosil jestli bys te me nemohl pomoct jak by jste to udělal vy (myslim konkrétně) v php nejsem moc dobrej proto se obracim na tady to fórum jestli by mě někdo nepomohl tento kód napsat jeden řiká že je tohle nej. druhej to řiká uplně jinak nwm běhá mě z toho hlava kolem :D jak by vypadal ten soubor down.php a index s htaccess?
|
||
|
Časová prodleva: 15 let
|
|||
0