Autor Zpráva
vipera
Profil *
pokud nahraju soubor na servr tak při kliknutí na stáhnout mě to dělá nějakou bejkárnu pokud je to soubor .zip, na localhost to funguje ale hlasí chybu archívu na servru už vubec.......vyzkoušet to mužete na: http://graficokh.wz.cz/uploa.php
budu rád pokud mě někdo poradí moc tomu nerozumim

uploa.php
---------------------------------------------------------------------- --------

<head>
<title>Nahrávání souborů</title>
</head>
<body>

<form enctype="multipart/form-data" name="upload" action="uloz.php" method="post">

<table width="100%">

<tr>
<td width="100%" colspan="2">
<b>Nahrávání souborů</b>
</td>
</tr>

<tr>
<td width="15%">
<p>Popis souboru:</p>
</td>
<td width="50%">
<input type="text" name="popis" size="20" maxlength="50">
</td>
</tr>

<tr>
<td width="15%">
<p>Soubor:</p>
</td>
<td width="50%">
<input type="file" name="soubor" size="20">
</td>



<tr>
<td width="100%" colspan="2">
<input type="submit" value="Nahrát" name="submit"> </td>
</tr>

</table>
</form>
<?php

$dbServer = "localhost";
$dbDatabase = "soubory";
$dbUser = "";
$dbPass = "heslo";

$db = mysql_connect($dbServer, $dbUser, $dbPass) or die("Není možné připojit databázový server.");
mysql_select_db($dbDatabase, $db) or die("Není mmožné spojení s databází $dbDatabase");

$query = "SELECT id, nazev, type FROM soubory ORDER BY nazev ASC";

$result = mysql_query($query) or die("Není možné vytvořit seznam!");

?>

<table width="100%">

<tr>
<td width="34%">
<b>Popis</b>
</td>
<td width="33%">
<b>Typ</b>
</td>
<td width="33%">
<b>Název</b>
</td>
</tr>

<?php
while($row = mysql_fetch_array($result))
{
?>

<tr>
<td>
<?php echo $row["nazev"]; ?>
</td>
<td>
<?php echo $row["type"]; ?>
</td>
<td>
<a href="download.php?id=<?php echo $row["id"]; ?>">Stáhnout</a>
</td>
</tr>

<?php
}

echo "</table>";
?>

download.php
---------------------------------------------------------------
<?php

global $id;

if(!is_numeric($id)) die("Chybné id!");

$dbServer = "localhost";
$dbDatabase = "soubory";
$dbUser = "";
$dbPass = "heslo";

$db = mysql_connect($dbServer, $dbUser, $dbPass) or die("Není možné připojit databázový server.");
mysql_select_db($dbDatabase, $db) or die("Není mmožné spojení s databází $dbDatabase");

$query = "SELECT type,data FROM soubory WHERE id = $id";

$result = mysql_query($query) or die("Není možné stáhnout soubor!");

if(mysql_num_rows($result) == 1)
{
$type = @mysql_result($result, 0, "type");
$obsah = @mysql_result($result, 0, "data");

header("Content-type: $type");
echo $obsah;
}
else
{
echo "Tento záznam neexistuje!";
}

?>

uloz.php
-----------------------------------------------------------
<?php

global $popis;
global $soubor;
global $soubor_name;
global $soubor_size;
global $soubor_type;

if(empty($popis) || $soubor == "none")
die("Musíte vložit informace o souboru!");

$dbServer = "localhost";
$dbDatabase = "soubory";
$dbUser = "";
$dbPass = "heslo";

$open = fopen($soubor, "r");
$obsah = fread($open, $soubor_size);
$obsah = addslashes($obsah);

$db = mysql_connect($dbServer, $dbUser, $dbPass) or die("Není možné připojit databázový server.");
mysql_select_db($dbDatabase, $db) or die("Není mmožné spojení s databází $dbDatabase");

$query = "INSERT INTO soubory VALUES (0, '$popis', '$obsah', '$soubor_type')";

mysql_query($query) or die("Není možné přidat soubor do databáze!");

echo "<h1>Soubor byl uložen</h1>";
echo "<b>Jméno:</b> $soubor_name <br>";
echo "<b>Typ:</b> $soubor_type <br>";
echo "<b>Velikost:</b> $soubor_size <br>";
echo "<b>Uloženo v:</b> $soubor <br><br>";
echo "<a href='upload.htm'>Nahrát další</a>";

?>
Jakub Vrána
Profil *
Jeden problém vidím v tom, že druhý parametr funkce fread() neoznačuje počet bytů, které se nutně musí načíst, ale které se mohou maximálně načíst.

Druhý vidím v tom, že pokud je na serveru zapnutá direktiva magic_quotes_runtime, tak funkce addslashes() způsobí druhé přidání zpětných lomítek.

Jinak mi to přijde v pohodě.
Leo
Profil
Je mi naprostou zahadou jak by ten uloz.php mohl nejak zpracovavat uploadovany soubor a ukladat ho, to se urcite nedela pres fopen, Leo
Leo
Profil
Cimz se vysvetluje proc vam to na lokale funguje / zadny upload se neprovadi, fopen cte LOKALNI soubor, Leo
Petr Slavíček
Profil *
Zaujala mě možnost downloadu pomocí

Header("Content-type: $type");
echo $obsah;

ale nefunguje mi to. V prohlížeči se mi zobrazí datový obsah proměnné $obsah.
Je taková konstrukce vůbec možná?
Toto téma je uzamčeno. Odpověď nelze zaslat.