ugrás a tartalomhoz

Képfeltöltés után hivatkozás kiírása, kép megjelenítése

Anonymous · 2005. Okt. 15. (Szo), 17.50
upload.php tartalma:
  1. <?php  
  2. $imagesonly = false;  
  3. $basedir = ".";  
  4. $filetypesinf = "filetypes.txt";  
  5. $allowfiletyopesonly = true;  
  6.   
  7. // <--- NO USER EDITABLE PARTS BELOW THIS LINE --->  
  8. session_start();  
  9.   
  10. if($imagesonly == false AND $allowfiletyopesonly == true)  
  11.     {  
  12.     $fa = fopen($filetypesinf'r');  
  13.     while($line = fgets($fa, 1024))  
  14.         {  
  15.         if(ereg("\n",$line))  
  16.             {  
  17.             $line = ereg_replace("\n",""$line);  
  18.             }  
  19.         $filetypes[$line] = $line;  
  20.         }  
  21.     fclose($fa);  
  22.     }  
  23.   
  24. define("STEP1","<html>\n<head>\n<title>Feltöltés</title>\n</head>\n<form action=\"" .   
  25.   
  26. $_SERVER['php_self'] . "\" method=\"get\">\nHány fájlt szeretnél feltölteni? <input   
  27.   
  28. type=\"text\" size=\"1\" value=\"5\" name=\"filestoupload\"/>\n<br />\n<input   
  29.   
  30. type=\"submit\">\n</form>\n</body>\n</html>");  
  31. $step2 = "<html>\n<head>\n<title>Feltöltés</title>\n</head>\n<form action=\"" .   
  32.   
  33. $_SERVER['php_self'] . "\" method=\"post\" enctype=\"multipart/form-data\">\n{FORM}\n<input   
  34.   
  35. type=\"submit\" name=\"upload\" value=\"Feltöltés\" />\n</form></body>\n</html>";  
  36.   
  37. function map_dirs($path)   
  38.     {  
  39.     if(is_dir($path))   
  40.         {  
  41.         if($contents = opendir($path))   
  42.             {  
  43.             while(($node = readdir($contents)) !== false)   
  44.                 {  
  45.                 if($node!="." && $node!="..")   
  46.                     {  
  47.                     if(is_dir($path."/".$node) AND is_writable($path .   
  48.   
  49. "/" . $node))  
  50.                         {  
  51.                         $_SESSION['path'] .= "<option value=\"" .   
  52.   
  53. $path . "/" . $node . "\">" . $path . "/" . $node . "</option>\n";  
  54.                         map_dirs($path . "/" . $node);  
  55.                         }  
  56.                     }  
  57.                 }  
  58.             }  
  59.         }  
  60.     }  
  61.   
  62. $_SESSION['path'] = "";  
  63. map_dirs($basedir);  
  64.   
  65. if(Empty($_POST['upload']))  
  66.     {  
  67.     if(Empty($_GET['filestoupload']))  
  68.         {  
  69.         die(STEP1);  
  70.         }  
  71.     else  
  72.         {  
  73.         $counter = 1;  
  74.         for($i=0; $i != $_GET['filestoupload']; $i++)  
  75.             {  
  76.             $form .= "File " . $counter++ . "\n<br />\n<input type=\"file\"   
  77.   
  78. name=\"" . $i . "\" /> Helye: <select name=\"place" . $i . "\" size=\"1\">\n" .   
  79.   
  80. $_SESSION['path'] . "</select>\n<br />\n";  
  81.             }  
  82.         die(ereg_replace('{FORM}'$form$step2));  
  83.         }  
  84.     }  
  85. else  
  86.     {  
  87.     foreach($_FILES as $file)  
  88.         {  
  89.         if(!emptyempty($file['tmp_name']))  
  90.             {  
  91.             if($imagesonly == true)  
  92.                 {  
  93.                 $size = getimagesize($file['tmp_name']);  
  94.                 if(!$size)  
  95.                     {  
  96.                     print $file['name'] . " feltöltése <font   
  97.   
  98. color=\"ff0000\">sikertelen</font>, mivel az nem kép!\n<br />\n";  
  99.                     }  
  100.                 else  
  101.                     {  
  102.                     if(@copy($file['tmp_name'], $_POST['place' .   
  103.   
  104. key($_FILES)] . '/' . $file['name']))  
  105.                         {  
  106.                         print $file['name'] . " feltöltése <font   
  107.   
  108. color=\"00ff00\">sikeres</font>\n<br />\n";  
  109.                         }  
  110.                     else  
  111.                         {  
  112.                         print $file['name'] . " feltöltése <font   
  113.   
  114. color=\"ff0000\">sikertelen</font>, mivel belső hiba történt...\n<br />\n";  
  115.                         }  
  116.                     }  
  117.                 }  
  118.             else  
  119.                 {  
  120.                 if($allowfiletyopesonly == false AND   
  121.   
  122. !emptyempty($filetypes[$file['type']]))  
  123.                     {  
  124.                     print $file['name'] . " feltöltése <font   
  125.   
  126. color=\"ff0000\">sikertelen</font>, mivel a file típus nem megengedett...(" . $file['type']   
  127.   
  128. ")\n<br />\n";  
  129.                     }  
  130.                 else  
  131.                     {  
  132.                     if(!Is_dir($_POST['place' . key($_FILES)]))  
  133.                         {  
  134.                         print $file['name'] . " feltöltése <font   
  135.   
  136. color=\"ff0000\">sikertelen</font>, mivel a megadott könyvtár nem létezik...\n<br />\n";  
  137.                         }  
  138.                     else  
  139.                         {  
  140.                         if(@copy($file['tmp_name'], $_POST['place'   
  141.   
  142. . key($_FILES)] . '/' . $file['name']))  
  143.                             {  
  144.                             print $file['name'] . " feltöltése   
  145.   
  146. <font color=\"00ff00\">sikeres</font>\n<br />\n";  
  147.                             }  
  148.                         else  
  149.                             {  
  150.                             print $file['name'] . " feltöltése   
  151.   
  152. <font color=\"ff0000\">sikertelen</font>, mivel belső hiba történt...\n<br />\n";  
  153.                             }  
  154.                         }  
  155.                     }  
  156.                 next($_FILES);  
  157.                 }  
  158.             }  
  159.         }  
  160.     }  
  161. ?>  
filetypes.txt tartalma:

text/plain
image/gif
application/octet-stream

És ezt szeretném úgy megcsinálni, hogy képfeltöltés után kiírja a kép linkjét, esetleg magát a képet is mutassa, de megelégednék az előzővel is. Előre is nagyon köszönöm...
 
1

<Nincs cím>

Anonymous · 2005. Okt. 15. (Szo), 21.59
Mi lenne ha egyszerűen egy változóban eltárolnád az elérést aztán meg csak utána csapnád a fájlok nevét, és ezeket szépen kiiratod. pl:
  1. <?php $host=array("/img","/text","/application");  
2

<Nincs cím>

Anonymous · 2005. Okt. 15. (Szo), 22.31
Akkor pontosan, hogy is? Légyszi...írd le az egész átdolgozott scriptet. Kösz előre...
3

<Nincs cím>

Anonymous · 2005. Okt. 16. (V), 00.52
Nem vagyok egy nagy programozó szóval , most inkább nem esnék neki. A lányeg az, hog amikor kiiratod akkor nem csak azt iratod ki, hogy $file['name']. "feltöltése sikeres volt".... hanem elécsapod azt, hogy $host azaz $host.$file['name'] ! A $host ban pedig az eredeti elérést adod meg, s ha töb könyvtárat akarsz akkor tömbbe reszed szóval vhogy így nézne ki ez a rész:
  1. <?php  
  2. $host="http://vmi.com/feltoltottfilek";  
  3. // $file a feltöltött fájl neve amit a form elküld  
  4. echo "<a href='$host$file'>$file</a> feltöltése sikeres volt";  
Ha pedig a fájl tipusonként máshova akarod tölteni akkor a $host így néz ki:
  1. <?php  
  2. $host=array("http://example.com/kep/","http://example.com/szoveg/","http://example.com/storage/");  
sztem így a legegyszerűbb bár attól függ, hogy mennyire jó ez a statikus megoldás!
4

Olvass doksit

janoszen · 2005. Okt. 16. (V), 19.02
Üdv!

A PHP dokumentációjában (php.net) az opendir parancs dokumentációjánál legalább 10 példát találsz hasonló dolgokra. Mielőtt postolsz, illene elolvasni a dokumentációkat.