hehe... nej, tanken är den att querystringen hämtar ut ett visst id säg 1 då, 1 i db'n har ju en sökväg till en fil, men den kommer inte så långt.... den vill liksom ladda ner dokumentet download.php
Kan inte connecta mysql?!
61 svar · 1 385 visningar · startad av crisse6 · sida 2 av 4
Kod tack :)
Löste det hela... ;) Eller nu när detta skript gäller framförallt bilder... men verkar ha ett annat problem nu, när jag ska ladda upp själva filerna, inga felmess, men den fil man laddar upp finns inte med i "listan"... skumt? Koden har ni här:
<html>
<head>
<title>Ladda upp filer</title>
</head>
<body>
<?php
if (isset($_FILES['fildata'])) {
if (is_uploaded_file($_FILES['fildata']['tmp_name'])) {
if (empty($_POST['besk']))
$besk = "Ingen beskrivning...";
else
$besk = $_POST['besk'];
$dbh = @mysql_connect ("localhost","root","")
or die ("Gick inte att ansluta!");
mysql_select_db ("filer");
$filnamn = $_FILES['fildata']['name'];
$filtyp = $_FILES['fildata']['type'];
$filstorlek = $_FILES['fildata']['size'];
$fildata = addslashes(fread(fopen($_FILES['fildata']['tmp_name'],"rb"), filesize($_FILES['fildata']['tmp_name'])));
$sql = "INSERT INTO t_filer (filnamn, filtyp, filstorlek, fildata, besk)";
$sql .= " VALUES ('$filnamn','$filtyp','$filstorlek','$fildata','$besk')";
mysql_query($sql);
$fil_id = mysql_insert_id();
echo "<h3>Filen fick ID $fil_id</h3><br>";
mysql_close();
}
}
echo "<h2>Filer i databasen</h2>\n";
$dbh = @mysql_connect("localhost","root","")
or die ("Kunde inte ansluta mot databasen!");
mysql_select_db("filer");
$sql = "Select fid, filnamn, filtyp, filstorlek, besk FROM t_filer";
$result = mysql_query($sql);
echo "<table border=0>\n";
echo "<tr bgcolor=#EFEFEF><td>Filnamn</td><td>Filtyp</td><td>Filstorlek</td><td>Beskrivning</td><tr>\n";
while ($rad=mysql_fetch_array($result)) {
echo "<tr bgcolor=FFFFFF>\n";
echo "<td><a href=download.php?fid=$rad[1]>$rad[1]</a></td>";
echo "<td>$rad[2]</td><td>$rad[3]</td><td>$rad[4]</td>\n";
echo "</tr>\n";
}
echo "</table>\n";
mysql_close();
?>
<h2>Ladda upp valfri fil</h2>
<form action="<?=$PHP_SELF?>" method="post" enctype="multipart/form-data">
Välj fil<br>
<input type="file" name="fildata"><br>
Beskriv filen<br>
<input type="text" name="besk"><br>
<br>
<input type="submit" value="Ladda upp filjäveln!">
</form>
</body>
</html>
Finns den med i databasen eller skrivs den bara inte ut?
Finns ej med i databasen!
mysql_query($sql);
Ändra den till:
mysql_query($sql) or die("Någonting är knas med SQL-satsen");
Så ser du om den ens kommer dit och om den fungerar eller om dina if-satser innan "förstör".
nix. får inte nåt mess :(
Då är det dina if-satser som avbryter innan du hinner komma till delen där den lägger till i databasen.
neeeeeeeeeeeeeeeeee, vart har jag gjort fel guys?
Min gissning är denna raden:
if (isset($_FILES['fildata'])) {
Testa något i stil med:
if (!empty($_FILES['fildata']['name'])) {
Bara ett enkelt 'ful'-exempel.
Du, nu blir det ingen skillnad :P Usch usch.... what's goin on??? Försök igen, jätte tacksam!
<html>
<head>
<title>Ladda upp filer</title>
</head>
<body>
<?php
if (!empty($_GET['action'])) {
if (is_uploaded_file($_FILES['fildata']['tmp_name'])) {
if (empty($_POST['besk']))
$besk = "Ingen beskrivning...";
else
$besk = $_POST['besk'];
$dbh = @mysql_connect ("localhost","root","")
or die ("Gick inte att ansluta!");
mysql_select_db ("filer");
$filnamn = $_FILES['fildata']['name'];
$filtyp = $_FILES['fildata']['type'];
$filstorlek = $_FILES['fildata']['size'];
$fildata = addslashes(fread(fopen($_FILES['fildata']['tmp_name'],"rb"), filesize($_FILES['fildata']['tmp_name'])));
$sql = "INSERT INTO t_filer (filnamn, filtyp, filstorlek, fildata, besk)";
$sql .= " VALUES ('$filnamn','$filtyp','$filstorlek','$fildata','$besk')";
mysql_query($sql);
$fil_id = mysql_insert_id();
echo "<h3>Filen fick ID $fil_id</h3><br>";
mysql_close();
}
}
echo "<h2>Filer i databasen</h2>\n";
$dbh = @mysql_connect("localhost","root","")
or die ("Kunde inte ansluta mot databasen!");
mysql_select_db("filer");
$sql = "Select fid, filnamn, filtyp, filstorlek, besk FROM t_filer";
$result = mysql_query($sql);
echo "<table border=0>\n";
echo "<tr bgcolor=#EFEFEF><td>Filnamn</td><td>Filtyp</td><td>Filstorlek</td><td>Beskrivning</td><tr>\n";
while ($rad=mysql_fetch_array($result)) {
echo "<tr bgcolor=FFFFFF>\n";
echo "<td><a href=download.php?fid=$rad[1]>$rad[1]</a></td>";
echo "<td>$rad[2]</td><td>$rad[3]</td><td>$rad[4]</td>\n";
echo "</tr>\n";
}
echo "</table>\n";
mysql_close();
?>
<h2>Ladda upp valfri fil</h2>
<form action="?action=upload" method="post" enctype="multipart/form-data">
Välj fil<br>
<input type="file" name="fildata"><br>
Beskriv filen<br>
<input type="text" name="besk"><br>
<br>
<input type="submit" value="Ladda upp filjäveln!">
</form>
</body>
</html>
Jag går på lunch nu, är tillbaka om ~1h
Tungt att jobba :D
Icke icke... hehe, käka du så du får nya krafter för det blev tyvärr ingen skillnad :(
Hmm... fick felmess då...
Parse error: parse error, unexpected T_ELSE in C:\www\uppladdning\upload.php on line 12
med följande kod:
<?php
if (!empty($_GET['action'])) {
if (empty($_POST['besk'])) {
$besk = "Ingen beskrivning...";
else
$besk = $_POST['besk'];
$dbh = @mysql_connect ("localhost","root","")
or die ("Gick inte att ansluta!");
mysql_select_db ("filer");
$filnamn = $_FILES['fildata']['name'];
$filtyp = $_FILES['fildata']['type'];
$filstorlek = $_FILES['fildata']['size'];
$fildata = addslashes(fread(fopen($_FILES['fildata']['tmp_name'],"rb"), filesize($_FILES['fildata']['tmp_name'])));
$sql = "INSERT INTO t_filer (filnamn, filtyp, filstorlek, fildata, besk)";
$sql .= " VALUES ('$filnamn','$filtyp','$filstorlek','$fildata','$besk')";
mysql_query($sql);
$fil_id = mysql_insert_id();
echo "<h3>Filen fick ID $fil_id</h3><br>";
mysql_close();
}
}
echo "<h2>Filer i databasen</h2>\n";
$dbh = @mysql_connect("localhost","root","")
or die ("Kunde inte ansluta mot databasen!");
mysql_select_db("filer");
$sql = "Select fid, filnamn, filtyp, filstorlek, besk FROM t_filer";
$result = mysql_query($sql);
echo "<table border=0>\n";
echo "<tr bgcolor=#EFEFEF><td>Filnamn</td><td>Filtyp</td><td>Filstorlek</td><td>Beskrivning</td><tr>\n";
while ($rad=mysql_fetch_array($result)) {
echo "<tr bgcolor=FFFFFF>\n";
echo "<td><a href=download.php?fid=$rad[1]>$rad[1]</a></td>";
echo "<td>$rad[2]</td><td>$rad[3]</td><td>$rad[4]</td>\n";
echo "</tr>\n";
}
echo "</table>\n";
mysql_close();
?>
Testa med "måsvingarna" runt else.
Rad 12:
} else {
Okej, la till { } runt else, och tog sen bort där vid mysql_close()
får då ett felmess om rad 64; som är raden efter </html> så det där är mkt skumt... förstår inte varför jag skulle ha {} runt else???
du ska inte ha {} runt snarare }{
En if-sats skriver du vanligen som
if(uttryck)
{
}else{
}
Dvs, du måste ha måsvingar för att definiera de block som tillhör if respektive else.