Autor | Zpráva | ||
---|---|---|---|
xciza Profil |
#1 · Zasláno: 21. 6. 2011, 16:05:40
Ahoj, na webu v administraci jsem udělal upload obrázků na server. Vše funguje v pohodě. Ale potřeboval bych, aby se cesta uloženého obrázku sama vložila do databáze, a potom jsem si mohl ten obrázek z těchto informací zobrazit. Zkoušel jsem google, ale nevím pod jakými klíčovými slovy mám toto hledat. Proto bych chtěl poprosit o pomoc s tímto problémem ;)
|
||
okolojdouci Profil * |
#2 · Zasláno: 21. 6. 2011, 16:09:58
Takže neřešíš upload, ale přidání informace do databáze.
INSERT INTO tbl_name (col1,col2) VALUES(val1,val2) Cestu k právě nahranému souboru znáš, musíš ji přece zadávat při samotném uploadu. |
||
xciza Profil |
#3 · Zasláno: 21. 6. 2011, 16:25:41
Jo tak cestu znám jako admin (i název obrázku), ale když na web nahraje obrázek jiný uživatel tak jeho název obrázku znát nebudu-tudíž ho z databáze nevypíšu...
|
||
Jozin Profil |
#4 · Zasláno: 21. 6. 2011, 16:30:49
Počkat při uploadu obrázku musíš znát jeho jméno a taky máš jasně definováno kam se uloží v adresářové struktuře, tak prostě tyto informace předáš dotazem jak psal okoljdouci databázi.
|
||
okolojdouci Profil * |
#5 · Zasláno: 21. 6. 2011, 16:31:12
Tím "znáš" jsem myslel, že to "zná" ten skript, kterým soubor nahráváš. Předpokládám, že používáš toto: http://cz2.php.net/manual/en/function.move-uploaded-file.php a tam prostě cestu (a název souboru) při nahrání musíš uvést.
|
||
xciza Profil |
#6 · Zasláno: 21. 6. 2011, 17:54:23
mám tento skript:
<?php if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/pjpeg")) && ($_FILES["file"]["size"] < 100000000)) { if ($_FILES["file"]["error"] > 0) { echo "Return Code: " . $_FILES["file"]["error"] . "<br />"; } else { echo "Upload: " . $_FILES["file"]["name"] . "<br />"; echo "Type: " . $_FILES["file"]["type"] . "<br />"; echo "Size: " . ($_FILES["file"]["size"] / 200000000) . " Kb<br />"; echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />"; if (file_exists("upload/" . $_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . " already exists. "; } else { move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]); echo "Stored in: " . "upload/" . $_FILES["file"]["name"]; } } } else { echo "Invalid file"; } ?> |
||
Ben Profil * |
#7 · Zasláno: 21. 6. 2011, 22:52:15
Tu máš jiné řešení:
|
||
Ben Profil * |
#8 · Zasláno: 21. 6. 2011, 22:52:56
e="vlozit" action="<?php echo $_SERVER["PHP_SELF"];?>" method="post" enctype="multipart/form-data"> <table> <tr> <td>Rok:</td> <td colspan="2"> <select name="rok"> <option value="">Vyber rok...*</option> <?php //vytvori rolovatko s roky od roku 1994 do soucasneho for($rok = 1994; $rok <= date("Y"); $rok++){ echo"<option value=\"$rok\""; if(!isset($send)){echo $_POST["rok"]==$rok ? "selected" : "";} echo">$rok</option>"; } ?> </select> </td> </tr> <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>Popis:</td> <td><textarea name="popis" cols="40" rows="3" maxlength="999"><?php if(!isset($send)){echo $_POST["popis"];}?></textarea></td> <td><i>tento text bude zobrazen jako titulek a zaroven jako popisek k fotce</i></td> </tr> <tr> <td><input type="submit" name="ok" value="Uložit"></td> </tr> </table> </form> <br> <p><a href="../admin/">Zpět do administrační sekce</a> </p> <?php } ?> </body> </html> |
||
xciza Profil |
#9 · Zasláno: 22. 6. 2011, 17:17:46
abych pravdu řekl, tak jsem se v tom tvým kódu úplně ztratil:) . Zkusil jsem něco sám ale moc mi to nejde. Mám toto:
formulář: <form action="upload.php" method="post" enctype="multipart/form-data"> <label for="file">Soubor:</label> <input type="file" name="file" id="file" /> <br /> <label for="popis">Popis:</label> <textarea cols="20" rows="5" name="popis" id="popis"></textarea> <br /> <input type="submit" name="submit" value="Submit" /> </form> PHP skript: <?php include "sprava.php" ; if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/pjpeg")) && ($_FILES["file"]["size"] < 100000000)) { if ($_FILES["file"]["error"] > 0) { echo "Return Code: " . $_FILES["file"]["error"] . "<br />"; } else { echo "Upload: " . $_FILES["file"]["name"] . "<br />"; echo "Type: " . $_FILES["file"]["type"] . "<br />"; echo "Size: " . ($_FILES["file"]["size"] / 200000000) . " Kb<br />"; echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />"; if (file_exists("upload/" . $_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . " already exists. "; } else { move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" . $_FILES["file"]["name"]); if($_POST["file"] && $_POST["popis"]){ $upload = mysql_query("INSERT INTO obrazek (ID, url, popis) VALUES ('NULL', '$file', '$popis')", $dbc)or die("Chyba v dotaze: " . mysql_error()); } echo "Stored in: " . "upload/" . $_FILES["file"]["name"]; } } } else { echo "Invalid file"; } ?> píše to: Undefined index: file in C:\Program Files\EasyPHP\www\!! Marilyn !!\upload.php on line 30. Nevím proč se mu to nelíbí... |
||
okolojdouci Profil * |
#10 · Zasláno: 22. 6. 2011, 17:27:51
xciza:
Nechce se mně zkoumat ty kilometry kódu, co jste sem napsali, ale jestli ř. 30 je „if($_POST["file"] && $_POST["popis"]){“ tak bych z toho udělal if(isset($_POST["file"]) && isset($_POST["popis"])){ A nepoužívej na webu názvy složek "!! Marilyn !!", probůh. Snaž se vystačit s malými písmeny, bez mezer, bez diakritiky a vykřičníků. |
||
xciza Profil |
#11 · Zasláno: 22. 6. 2011, 17:36:58 · Upravil/a: xciza
tak jsem to zkusil změnit a teď se tomu nelíbí Undefined index: file in C:\Program Files\EasyPHP\www\!! Marilyn !!\upload.php on line 5,6,7 a dalších, kde je
$_FILES["file"] |
||
Časová prodleva: 13 let
|
0