Autor | Zpráva | ||
---|---|---|---|
Felix Profil * |
Ahoj mohu se zeptat jak ulozim uploudovany soubor do databaze mysql?
tady mam script ten mi funguje, soubor se nahraje tam kam ma ale do databaze se nic neulozi: <?php include ('config.php'); mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD); mysql_select_db(SQL_DBNAME); mysql_query("set names 'cp1250'"); $last_id=mysql_insert_id(); $uploaddir = 'download/'; // Relative path under webroot $uploadfile = $uploaddir . basename($_FILES['file']['name']); if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) { echo "File is valid, and was successfully uploaded.\n"; } else { echo "File uploading failed.\n"; } /*získání jména souboru*/ $name = $_FILES['file']['name']; $vysledek_down = "INSERT INTO download (iddown, popissouboru, downloadsoubor) values (".$last_id.",'".$_POST["popissouboru"]."','".$name."')"; $path= 'http://' . $_SERVER['SERVER_NAME'] . dirname($_SERVER['SCRIPT_NAME']) . '/download.php'; Header("Location:".$path); |
||
davef6 Profil |
#2 · Zasláno: 4. 1. 2009, 16:38:34
nemělo by tam být mysql_query("INSERT INTO download (iddown, popissouboru, downloadsoubor) values (".$last_id.",'".$_POST["popissouboru"]."','".$name."')");
|
||
Felix Profil * |
#3 · Zasláno: 4. 1. 2009, 16:52:15
Jo tak to je presne ono diky...
|
||
frantisek Profil * |
#4 · Zasláno: 5. 1. 2009, 17:12:56
Ahoj znovu bych poprosil o radu. Mam script na upload souboru, ktery mi na localhostu funguje ale na ostrem servru mi to hlasi tyto chyby:
Warning: move_uploaded_file(../download/Vesele_Vanoce.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in /www/doc/www.optexcz.eu/www/admin/odesli_download.php on line 9 Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/www/tmp/phpuJRDLT' to '../download/Vesele_Vanoce.jpg' in /www/doc/www.optexcz.eu/www/admin/odesli_download.php on line 9 File uploading failed. Warning: Cannot modify header information - headers already sent by (output started at /www/doc/www.optexcz.eu/www/admin/odesli_download.php:9) in /www/doc/www.optexcz.eu/www/admin/odesli_download.php on line 22 Script: <?php include ('config.php'); mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD); mysql_select_db(SQL_DBNAME); mysql_query("set names 'cp1250'"); $last_id=mysql_insert_id(); $uploaddir = '../download/'; // Relative path under webroot $uploadfile = $uploaddir . basename($_FILES['file']['name']); if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) { echo "File is valid, and was successfully uploaded.\n"; } else { echo "File uploading failed.\n"; } /*získání jména souboru*/ $name = $_FILES['file']['name']; $vysledek_down=mysql_query("INSERT INTO download (iddown, popissouboru, downloadsoubor) values (".$last_id.",'".$_POST["popissouboru"]."','".$name."')"); $path= 'http://' . $_SERVER['SERVER_NAME'] . dirname($_SERVER['SCRIPT_NAME']) . '/download.php'; Header("Location:".$path); ?> Nevite kde a co mam na sevru nebo jinde nastavit, adresar download tam mam vytvoreny ale jestli se ma nejak nastavovat tak to nevim jak.. |
||
frantisek Profil * |
#5 · Zasláno: 5. 1. 2009, 17:15:47
Adresar download mam nastaven na 777
|
||
frantisek Profil * |
#6 · Zasláno: 5. 1. 2009, 17:19:51
Tak po nastaveni adresare mi to sice napise ze soubor byl nahran ale vyskoci mi tato chyba, ale stejne se mi zadny soubor nikam neulozi
File is valid, and was successfully uploaded. Warning: Cannot modify header information - headers already sent by (output started at /www/doc/www.optexcz.eu/www/admin/odesli_download.php:10) in /www/doc/www.optexcz.eu/www/admin/odesli_download.php on line 22 |
||
frantisek Profil * |
#7 · Zasláno: 5. 1. 2009, 17:28:24
Tak uz to snad funguje akorat se to nenahralo hned ale nevim jak udelat aby se mi to po nacteni vratilo samo na stranku na kterou chci a aby se ta stranka zaktualizovala a byli tam zmeny hned videt..
Staci nejaky prikaz na refresh? |
||
Alphard Profil |
#8 · Zasláno: 5. 1. 2009, 17:42:50
header funguje, ale nesmí před ním být výstup, vyhoďte echo
|
||
frantisek Profil * |
#9 · Zasláno: 5. 1. 2009, 17:51:56
A kam bych tedy mel echo, predpokladam to s tim co hlasi zda se soubor povedl nahrat ci nikoliv dat, aby uzivtal videl zda se upload povedl?
|
||
frantisek Profil * |
#10 · Zasláno: 5. 1. 2009, 18:01:11
A jeste bych se rad zeptal ohledne toho nacteni stranky,
kdyz mazu data z tabulky pomoci: <?php include "config.php"; // zde je include souboru s konstantami mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD); mysql_select_db(SQL_DBNAME); mysql_query("set names 'cp1250'"); $iddown=$_GET["iddown"]; $vysledek_down=mysql_query("delete from download where iddown = $iddown"); $smazat_aktuality = Mysql_Query("DELETE FROM download"); $path= 'http://' . $_SERVER['SERVER_NAME'] . dirname($_SERVER['SCRIPT_NAME']) . '/download.php'; Header("Location:".$path); exit; ?> Tak se mi sice vse vymaze ale ja to vidim az po nacteni stranky pomoci tlacitka v prohlizeci, lze to udelat aby se to samo nacetlo a ja nemusel nikam klikat? |
||
Alphard Profil |
#11 · Zasláno: 5. 1. 2009, 18:02:57
na stránku, na kterou ho přesměrujete, nebo ho můžete přesměrovat na nějaký seznam souborů, uživatelé se stejně radši sami ujistí, že je vše OK
kombinace echo a header nejde dohromady, třeba byste mohl vypsat "Vše OK, <a href=xxx>Pokračujte zde</a>", ale zase hrozí, že uživatel aktualizuje stránku a soubor se nahraje podruhé $path by měla obsahovat adresu, kam chcete přesměrovat |
||
frantisek Profil * |
#12 · Zasláno: 5. 1. 2009, 18:05:13
Ok ta to tedy udelam takhle a s tim vymazanim a aktualizovanim by ste mi mohl poradit?
|
||
Alphard Profil |
#13 · Zasláno: 5. 1. 2009, 18:07:47
„a s tim vymazanim a aktualizovanim by ste mi mohl poradit?“
to je pořád ten samý problém, přesměrujte na stránku, kterou potřebujete, já ji neznám |
||
frantisek Profil * |
#14 · Zasláno: 5. 1. 2009, 18:12:08
Ja to mazu s te jedne a te same stranky a na tu i presmerovavam, ale vymaze se to az po stisknuti talcitka v prohlizeci
Timto mazu: smazat_download.php <?php include "config.php"; // zde je include souboru s konstantami mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD); mysql_select_db(SQL_DBNAME); mysql_query("set names 'cp1250'"); $iddown=$_GET["iddown"]; $vysledek_down=mysql_query("delete from download where iddown = $iddown"); $smazat_aktuality = Mysql_Query("DELETE FROM download"); $path= 'http://' . $_SERVER['SERVER_NAME'] . dirname($_SERVER['SCRIPT_NAME']) . '/download.php'; Header("Location:".$path); exit; ?> A toto mam na strance doanload.php: <a href="smazat_download.php?smazat=yes" onclick="return (confirm('Potvzením vymažete veškeré soubory v downloadu!')) ? true : false;">Vymaž všeschny soubory</a> |
||
Alphard Profil |
#15 · Zasláno: 5. 1. 2009, 18:27:50
asi jsem vás špatně pochopil, vy chcete, aby se to smazalo bez kliku na odkaz, např. v zadaný čas?
|
||
frantisek Profil * |
#16 · Zasláno: 5. 1. 2009, 18:31:51
Ne. Mam na strance download.php klik vymazat udaje z databaze:
<a href="smazat_download.php?smazat=yes" onclick="return (confirm('Potvzením vymažete veškeré soubory v downloadu!')) ? true : false;">Vymaž všeschny soubory</a> Na ten kdyz kliknu tak me to po odsouhlaseni presmeruje na stranku smazat_download.php : <?php include "config.php"; // zde je include souboru s konstantami mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD); mysql_select_db(SQL_DBNAME); mysql_query("set names 'cp1250'"); $iddown=$_GET["iddown"]; $vysledek_down=mysql_query("delete from download where iddown = $iddown"); $smazat_aktuality = Mysql_Query("DELETE FROM download"); $host = $_SERVER['HTTP_HOST']; $uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\'); $extra = 'download.php'; header("Location: http://$host$uri/$extra"); exit; ?> Kde se udaje vymazou a zpatky se to vrati na stranku download.php, ale udaje tam zustanou a az kdyz stranku aktualizuju pomoci prohlizece tak vse vymizi a ja bych to chtel automaticky aby bylo hned videt ze se to vymazalo. |
||
Alphard Profil |
#17 · Zasláno: 5. 1. 2009, 18:40:23
problém je asi s cache, zkuste to takhle:
header ("location: http://".$_SERVER['SERVER_NAME']."/download.php", TRUE, 303); cestu si případně upravte, ale je to jen drobná modifikace, jestli to nepomůže, vložtě na začátek download.php tohle <?php header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past ?> |
||
frantisek Profil * |
#18 · Zasláno: 5. 1. 2009, 18:45:08
<?php header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past ?> Pridanim tohoto kodu mi to funguje. a toto mohu pouzit vsude kde potrebuji aktualizovat stranku? |
||
Alphard Profil |
#19 · Zasláno: 5. 1. 2009, 18:48:17
„Pridanim tohoto kodu mi to funguje. a toto mohu pouzit vsude kde potrebuji aktualizovat stranku?“
v podstatě ano, ale jestli to bezdůvodně přeženete, může to zpomalovat, většinou to není potřeba |
||
Časová prodleva: 9 dní
|
|||
tv-live Profil * |
#20 · Zasláno: 14. 1. 2009, 13:21:19
www.tv-live.wbs.cz tam je postup skus to
|
||
Časová prodleva: 16 let
|
0