Hejsa
Jeg har et meget simpelt upload script. Det ser ud som følger:
<?php
// GET USER INPUTS FROM FORM
$id = $_GET['id'];
$title = $_REQUEST['title'];
$text = $_REQUEST['text'];
// CHECKING TITLE INPUT
// Any title?
if ($_REQUEST['title'] == "") {
echo "<div class=\\"msgbox\\" align=\\"center\\">Du har ikke skrevet nogen titel!<br>";
echo "<a href=\\"javascript:history.back()\\">[ Tilbage ]</a></div>";
echo "</div>";
echo $main_content_end;
echo $footer;
echo $end_html;
exit;
}
// IF GET_ID, THIS IS ALL TO BE DONE...
if ($id) {
include("../scripts/connect_db.php");
$sql = "UPDATE movies SET title='$title', text='$text' WHERE id=$id";
mysql_query($sql) or die('Error, query failed');
echo "<div class=\\"msgbox\\" align=\\"center\\"><b>$title</b><br>- er nu opdateret.<br><br>";
echo "<a href=\\"index.php?page=1\\">[ Tilbage ]</a></div>";
include("../scripts/close_db.php");
echo $main_content_end;
echo $footer;
echo $end_html;
exit;
}
// Any file?
if ($_FILES['file']['size'] == 0) {
echo "<div class=\\"msgbox\\" align=\\"center\\">Du har ikke valgt en fil...<br>";
echo "<a href=\\"javascript:history.back()\\">[ Tilbage ]</a></div>";
echo "</div>";
echo $main_content_end;
echo $footer;
echo $end_html;
exit;
}
// Too big?
if ($_FILES['file']['size'] > 2000000) {
echo "<div class=\\"msgbox\\" align=\\"center\\">Beklager, din fil er for stor!<br>";
echo "<a href=\\"javascript:history.back()\\">[ Tilbage ]</a></div>";
echo "</div>";
echo $main_content_end;
echo $footer;
echo $end_html;
exit;
}
// Is it a MP4 file?
if (!$_FILES['file']['type'] == "video/mp4") {
echo "<div class=\\"msgbox\\" align=\\"center\\">Beklager, men din fil er ikke i mp4 format!<br>";
echo "<a href=\\"javascript:history.back()\\">[ Tilbage ]</a></div>";
echo "</div>";
echo $main_content_end;
echo $footer;
echo $end_html;
exit;
}
// Her skal filen flyttes fra
$src = $_FILES['file']['tmp_name'];
// Hvilken type fil arbejder vi med?
$ext = strtolower(end(explode(".", $_FILES['file']['name'])));
// Dato indstilles til filnavn
$date = date('d-m-Y-His');
// Her giver vi billedet et andet navn, så der ikke kommer to ens navne…
$filename = "movie_" . $date . "." . $ext;
// Her er vores destination for det store billede
$dst = "../media/film/" . $filename;
// her uploades det store billede:
copy($src, $dst);
include("../scripts/connect_db.php");
$sql = "INSERT INTO movies (title, text, movie) VALUES ('$title','$text','$filename')";
mysql_query($sql) or die('Error, query failed');
$sort = "ALTER TABLE movies ORDER BY id";
mysql_query($sort) or die('Error, query failed');
echo "<div class=\\"msgbox\\" align=\\"center\\"><b>$title</b><br>- er nu tilføjet i databasen...<br><br>";
echo "<a href=\\"index.php?page=1\\">[ Tilbage ]</a> | <a href=\\"index.php?page=2&action=add\\">[ Tilføj flere ]</a></div>";
include("../scripts/close_db.php");
?>
Problemet er, at mine filestørrelses tjek ikke dur! Forsøger jeg eksempelvis at uploade en fil på 2 MB, så siger den at jeg ikke har valgt nogen!
Prøver jeg at bruge en fil der ikke er mp4 - f.eks. en jpg - så æder den filen råt, og gennemfører scriptet med upload.
Jeg håber at I kan spotte problemet, for jeg giver op nu! :-/
Forslag til alternativ kode er naturligvis mere end velkommen.
Mvh
Gunnar