Autor | Zpráva | ||
---|---|---|---|
koudelacek Profil * |
#1 · Zasláno: 10. 6. 2012, 16:43:55
Prosím Vás, našel jsem tento kód a funguje perfektně i s funkcemi, když ho ale předělám, abych mohl nahrávat i soubory doc, docx a pdf tak nefunguje.
Změny které jsem provedl Přidal doc, docx, pdf, ubral gif z koncovek. Soubor pro nahrávání přesunut z localhost/upload.php do localhost/admin/attachment.php. Cílová složka pro nahrané soubory localhost/attachment/$promenna_slozka_cisla(1,2,..)/ Pomozte prosím s úpravou kódu i pro nahrávání daných souborů. Děkuju. kód //odstraneni diakritiky(upravena funkce od php.vrana.cz) function odstran_diakritiku($in){ $in = preg_replace('~[^\\pL0-9_]+~u', '-', $in); $in = trim($in, "-"); $in = iconv("utf-8", "us-ascii//TRANSLIT", $in); $in = strtolower($in); $out = preg_replace('~[^-a-z0-9_]+~', '', $in); return $out; } $fotka = trim(@$_FILES["image"]["name"]); $fotka = preg_replace('~\s~','',$fotka); $soubor = date("Y-m-d_H-i-s")."-".$fotka; //zpracovani po odeslani if(@$_POST["ok"]){ //overovani, zda jsou vyplnena vsechna povinna pole if($_FILES["image"]){ //vytvoreni a ulozeni nahledu nahraneho obrazku //vytvoreni nahledu o maximalni veliskosti (sirka=120, vyska=80) list($width, $height) = image_shrink_size($_FILES["image"]["tmp_name"], 120, 80); if ($width && $height){ //adresar kde se ulozi nahled obrazku, pojmenovany stejne jako original, jen na bude zacina thumb_... $filename = "attachment/1/thumb_".$soubor; image_resize($_FILES["image"]["tmp_name"], $filename, $width, $height); } //nahrani obrazku if($_FILES["image"]["size"] > 0){ //povolene koncovky $koncovky = array('jpg', 'jpeg', 'png', 'gif'); $chyba = ""; if (!$_FILES || $_FILES["image"]["error"] == UPLOAD_ERR_INI_SIZE) { $chyba = "<p class=\"error\">Soubor je příliš velký, maximální velikost je " . ini_get('upload_max_filesize') . ".</p>\n"; $chyba .= "<form><input type=\"button\" value=\"Zpět\" onclick=\"history.back()\"></form>"; } elseif ($_FILES["image"]["error"] == UPLOAD_ERR_NO_FILE) { $chyba = "<p class=\"error\">Nevybrali jste soubor, který chcete nahrát.</p>\n"; $chyba .= "<form><input type=\"button\" value=\"Zpět\" onclick=\"history.back()\"></form>"; } elseif ($_FILES["image"]["error"]) { $chyba = "<p class=\"error\">Soubor se nepodařilo nahrát!</p>\n"; $chyba .= "<form><input type=\"button\" value=\"Zpět\" onclick=\"history.back()\"></form>"; } elseif (!in_array(strtolower(pathinfo($_FILES["image"]["name"], PATHINFO_EXTENSION)), $koncovky)) { $chyba = "<p class=\"error\">Koncovka souboru musí být jedna z: " . implode(", ", $koncovky) . ".</p>\n"; $chyba .= "<form><input type=\"button\" value=\"Zpět\" onclick=\"history.back()\"></form>"; } elseif (!($imagesize = getimagesize($_FILES["image"]["tmp_name"])) || $imagesize[2] > 3) { $chyba = "<p class=\"error\">Typ obrázku musí být JPG, JPEG, PNG nebo GIF.</p>\n"; $chyba .= "<form><input type=\"button\" value=\"Zpět\" onclick=\"history.back()\"></form>"; } else { //vytvoreni velkeho obrazku o maximalnich rozmerech(sirka=900, vyska=692) list($width, $height) = image_shrink_size($_FILES["image"]["tmp_name"], 900, 692); if ($width && $height){ //cesta kam se to ma ulozit(slozka musi mit nastaven chmod=0777) $filename = "attachment/1/".$soubor; image_resize($_FILES["image"]["tmp_name"], $filename, $width, $height); } //move_uploaded_file($_FILES["image"]["tmp_name"], "../img/uploaded/foto/$soubor"); } } } else{ echo "<p class=\"error\"><strong>Nejsou vyplněna všechna povinná pole!</strong></p>"; echo "<form><input type=\"button\" value=\"Zpět\" onclick=\"history.back()\"></form>"; } } //zobrazeni formulare else{ ?> <p align="left">Vyplneni vsech poli je povinne.</p><br><br> <form name="vlozit" action="<?php echo $_SERVER["PHP_SELF"];?>" method="post" enctype="multipart/form-data"> <table> <tr> <td>Obrázek:</td> <td><input type="file" name="image" accept="image"></td> <td><i>klikni a vyber *.jpg, *,jpeg, *.png nebo *.gif soubor</i></td> </tr> <tr> <td><input type="submit" name="ok" value="Uložit"></td> </tr> </table> </form> <?php } ?> |
||
shaggy Profil |
#2 · Zasláno: 10. 6. 2012, 17:40:46
koudelacek:
A môžem sa opýtať, ako si ho upravil pre nahrávanie doc, docx a pdf súborov? Nikde v tom kóde nevidím spomínanú úpravu. Preto by bolo vhodnejšie napísať, čo to presne nerobí/vypíše (nefunguje nie je presný popis) a prípadne nám ukázať tvoj zmenený kód. |
||
koudelacek Profil * |
#3 · Zasláno: 10. 6. 2012, 18:13:52
$fotka = trim(@$_FILES["image"]["name"]); $fotka = preg_replace('~\s~','',$fotka); $soubor = date("Y-m-d_H-i-s")."-".$fotka; //zpracovani po odeslani if(@$_POST["ok"]){ //overovani, zda jsou vyplnena vsechna povinna pole if($_FILES["image"]["size"] > 0){ //povolene koncovky $koncovky = array('jpg', 'jpeg', 'png', 'doc', 'docx', 'pdf'); // UPRAVA $chyba = ""; if (!$_FILES || $_FILES["image"]["error"] == UPLOAD_ERR_INI_SIZE) { $chyba = "<p class=\"error\">Soubor je příliš velký, maximální velikost je " . ini_get('upload_max_filesize') . ".</p>\n"; $chyba .= "<form><input type=\"button\" value=\"Zpět\" onclick=\"history.back()\"></form>"; } elseif ($_FILES["image"]["error"] == UPLOAD_ERR_NO_FILE) { $chyba = "<p class=\"error\">Nevybrali jste soubor, který chcete nahrát.</p>\n"; $chyba .= "<form><input type=\"button\" value=\"Zpět\" onclick=\"history.back()\"></form>"; } elseif ($_FILES["image"]["error"]) { $chyba = "<p class=\"error\">Soubor se nepodařilo nahrát!</p>\n"; $chyba .= "<form><input type=\"button\" value=\"Zpět\" onclick=\"history.back()\"></form>"; } elseif (!in_array(strtolower(pathinfo($_FILES["image"]["name"], PATHINFO_EXTENSION)), $koncovky)) { $chyba = "<p class=\"error\">Koncovka souboru musí být jedna z: " . implode(", ", $koncovky) . ".</p>\n"; $chyba .= "<form><input type=\"button\" value=\"Zpět\" onclick=\"history.back()\"></form>"; } elseif (!($imagesize = getimagesize($_FILES["image"]["tmp_name"])) || $imagesize[2] > 3) { $chyba = "<p class=\"error\">Typ obrázku musí být JPG, JPEG, PNG nebo GIF.</p>\n"; $chyba .= "<form><input type=\"button\" value=\"Zpět\" onclick=\"history.back()\"></form>"; } else { move_uploaded_file($_FILES["image"]["tmp_name"], "../img/uploaded/foto/$soubor"); // UPRAVA } } else{ echo "<p class=\"error\"><strong>Nejsou vyplněna všechna povinná pole!</strong></p>"; echo "<form><input type=\"button\" value=\"Zpět\" onclick=\"history.back()\"></form>"; } } //zobrazeni formulare else{ ?> <p align="left">Vyplneni vsech poli je povinne.</p><br><br> <form name="vlozit" action="<?php echo $_SERVER["PHP_SELF"];?>" method="post" enctype="multipart/form-data"> <table> <tr> <td>Obrázek:</td> <td><input type="file" name="image" accept="image"></td> <td><i>klikni a vyber *.jpg, *,jpeg, *.png nebo *.gif soubor</i></td> </tr> <tr> <td><input type="submit" name="ok" value="Uložit"></td> </tr> </table> </form> <?php } ?> |
||
Again Profil |
1) Pokud ti něco nefunguje, uváděj přesnou chybu (ať už je logická, nebo syntaktická).
2) Napiš si celý script sám a nedělej ze sebe pouhého "slepovače". 3) Ty koncovky, co jsi přidal do pole vůbec nesouvisí s obrázky, jak si s nimi má script asi poradit, když na to není stavěný? K celému dotazu bych dodal jediné, máš to rozbité, nejdříve to musíš slepit. |
||
candiess Profil |
#5 · Zasláno: 10. 6. 2012, 19:51:33
|
||
Časová prodleva: 11 let
|
0