MP3 upload sikkerhed
Til en side hvor brugere har mulighed for at uploade deres hjemmelavede musik, har jeg lavet flg. lille script.Til det har jeg et par spørgsmål:
1. Hvordan sikre jeg mig, at brugerne KUN uploader MP3 filer, og intet andet?
2. Findes der en måde at opnå hurtigere upload?
Siden virker, men det tager mellem 5-10 min at uploade ca. 4 mb.
Jeg har leget lidt med at uploade fra siden via FTP, men har endnu ikke fået det til at virke.
Her er Formen:
<form method="post" action="uptrack.php" enctype="multipart/form-data">
<p>Musik tittel:<br>
<input type="text" name="tracktittel"/>
</p>
<p>Musik stil:<br>
<input type="text" name="trackstyle"/>
</p>
<p>Musik længde (ca.):<br>
<select name="time">
<option value="Time">Time </option>
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
</select>
-
<select name="minut">
<option value="Minutter">Minutter</option>
<option value="00">00</option>
<option value="05">05</option>
<option value="10">10</option>
<option value="15">15</option>
<option value="20">20</option>
<option value="25">25</option>
<option value="30">30</option>
<option value="35">35</option>
<option value="40">40</option>
<option value="45">45</option>
<option value="50">50</option>
<option value="55">55</option>
</select>
<br>
<br>
<font color="#FF0000">Tracks må kun være af typen "MP3"
og må kun være hjemmelavede.<br>
Forsøg på upload af andre filtyper, vil medføre udelukkelse
fra xxxx.dk. </font></p>
<input type="hidden" name="user" value="<?php echo $session->username; ?>">
<input type="hidden" name="timestamp" value="<?php echo time(); ?>">
<input name="userfile" type="file" id="userfile">
<br><br>
Kort beskrivelse af Track:: <br>
<textarea rows="10" cols="35" name="tracktext">
</textarea>
<br/> <br>
<input TYPE="submit" name="upload" value="Upload Track"/>
</form>
***********************
Her er PHP:
<?php
include("LS2/include/session.php");
?>
<?php
$uploadDir = 'upload/';
if(isset($_POST['upload']))
{
//Informationerne fra formen
$tittel = $_POST['tracktittel'];
$style = $_POST['trackstyle'];
$time = $_POST['time'];
$min = $_POST['minut'];
$fileName = $_FILES['userfile']['name'];
$tmpName = $_FILES['userfile']['tmp_name'];
$fileSize = $_FILES['userfile']['size'];
$fileType = $_FILES['userfile']['type'];
$text = $_POST['tracktext'];
$user = $_POST['user'];
$timestamp = $_POST['timestamp'];
$filePath = $uploadDir . $fileName;
//smid info i databasen
$query = "INSERT INTO tracks (tittel, style, time, min, name, size, type, text, user, timestamp)
VALUES ('$tittel', '$style', '$time', '$min', '$fileName', '$fileSize', '$fileType', '$text', '$user', '$timestamp')";
$result = move_uploaded_file($tmpName, $filePath);
if (!$result)
{
echo "Fejl med upload";
exit;
}
include 'config.php';
include 'opendb.php';
if(!get_magic_quotes_gpc())
{
$fileName = addslashes($fileName);
$filePath = addslashes($filePath);
}
mysql_query($query) or die('Error, query failed : ' . mysql_error());
include 'closedb.php';
echo "<br>Filer er uploadet<br>";
}
?>
Håber i har nogle ideer.
