| 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: 14 let
|
|||
0