Uploader i flash og PHP hvordan
Jeg har hentet en Flashuploader her:http://www.swfupload.org/Som skal bruges til at uploade mp3 filer til en server.
Det har jeg leget lidt med, så den nu ser sådan ud: http://www.onlinedj.dk/uploader/index.php
Nu er problemerne flg;
1. mp3 filerne skal uploades til en folder f.eks. "uploads"
2. Info om mp3 filen skal ind i en mysqlDB F.eks. "Tracks"
3. Hvordan hulen gør jeg det?
Mit første script (selve uploaddelen) som virker, er rent php.
Det har jeg en ide om, at det på en eller anden led, skal bruges igen. Ved bare ikke hvordan, eller om det er helt ude i skoven.
Men det ser sådan ud:
<?php
$uploadDir = 'upload/';
if(isset($_POST['upload']))
{
//Informationerne fra formen
$tittel = $_POST['tittel'];
$style = $_POST['style'];
$time = $_POST['time'];
$min = $_POST['min'];
$fileName = $_FILES['txtFileName']['name'];
$tmpName = $_FILES['txtFileName']['tmp_name'];
$fileSize = $_FILES['txtFileName']['size'];
$fileType = $_FILES['txtFileName']['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>";
}
?>
*********************************
Nu kommer så selve brugerdelen - kaldet index.php (den jeg gerne vil have til at virke.
Den henviser bla. til 2 filer "upload.php" og "thanks.php"
Jeg har en ide om, at det er en af dem der skal ændres, men ved ikke hvilken eller hvordan.
Og det er det jeg håber at kunne få lidt hjælp til :-)
Her er de 3 filer index.php - upload.php - thanks.php
Index.php:
<?php
include("../LS2/include/session.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>onlineDJ Uploader</title>
<script type="text/javascript" src="swfupload/swfupload.js"></script>
<script type="text/javascript" src="js/swfupload.swfobject.js"></script>
<script type="text/javascript" src="js/fileprogress.js"></script>
<script type="text/javascript" src="js/handlers.js"></script>
<script type="text/javascript">
var swfu;
window.onload = function () {
swfu = new SWFUpload({
// Backend settings
upload_url: "upload.php",
file_post_name: "resume_file",
// Flash file settings
file_size_limit : "100 MB",
file_types : "*.MP3;*.mp3;*.Mp3", // or you could use something like: "*.doc;*.wpd;*.pdf",
file_types_description : "Alle af Typen",
file_upload_limit : "0",
file_queue_limit : "1",
// Event handler settings
swfupload_loaded_handler : swfUploadLoaded,
file_dialog_start_handler: fileDialogStart,
file_queued_handler : fileQueued,
file_queue_error_handler : fileQueueError,
file_dialog_complete_handler : fileDialogComplete,
//upload_start_handler : uploadStart, // I could do some client/JavaScript validation here, but I don't need to.
upload_progress_handler : uploadProgress,
upload_error_handler : uploadError,
upload_success_handler : uploadSuccess,
upload_complete_handler : uploadComplete,
// Button Settings
button_image_url : "XPButtonUploadText_61x22.png",
button_placeholder_id : "spanButtonPlaceholder",
button_width: 61,
button_height: 22,
// Flash Settings
flash_url : "swfupload/swfupload.swf",
custom_settings : {
progress_target : "fsUploadProgress",
upload_successful : false
},
// Debug settings
debug: false
});
};
</script>
<link href="css/default.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="content">
<h2>DJ uploader</h2>
<form id="form1" action="thanks.php" enctype="multipart/form-data" method="post">
<p>Uploaderen kræver Flash Player 9+ *** <a href="http://www.adobe.com/products/flashplayer/" target="_blank">Hent
sidste nye Flash Player</a>***</p>
<p><br />
- > Der må kun uploades filer i MP3 format.<br />
- >Der må ikke uploades andet musik, end det du selv har komponeret.<br />
-> Der må kun uploades hele musikstykker.<br />
-> Værker der ligger under KODA aftaler, må ikke uploades.</p>
<p><br />
Overtrædelse vil betyde permanent udelukkelse fra onlinedj.dk</p>
<p> </p>
<div class="fieldset"> <span class="legend">Upload din Musik</span>
<table style="vertical-align:top;">
<tr>
<td><label for="tittel">Tittel:</label></td>
<td><input name="tittel" id="tittel" type="text" style="width: 200px" /></td>
</tr>
<tr>
<td><label for="style">Musik genre:</label></td>
<td><input name="style" id="style" type="text" style="width: 200px" /></td>
</tr>
<tr>
<td><label for="time">Nummer længde:</label></td>
<td><select name="time" id="time">
<option value="Time">Time </option>
<option value="01">01</option>
<option value="02">02</option>
</select>
-
<select name="minut" id="minut">
<option value="Minutter">Minutter</option>
<option value="00">00</option>
<option value="05">05</option>
<option value="10">10</option>
</select></td>
</tr>
<tr>
<td><label for="txtFileName">Find nummer:</label></td>
<td>
<div>
<div>
<input type="text" name="txtFileName" id="txtFileName" disabled="true" style="border: solid 1px; background-color: #FFFFFF;" />
<span id="spanButtonPlaceholder"></span>
(20 MB min - 100 MB max)
</div>
<div class="flash" id="fsUploadProgress">
<!-- This is where the file progress gets shown. SWFUpload doesn't update the UI directly.
The Handlers (in handlers.js) process the upload events and make the UI updates -->
</div>
<input type="hidden" name="hidFileID" id="hidFileID" value="" />
<!-- This is where the file ID is stored after SWFUpload uploads the file and gets the ID back from upload.php -->
</div>
</td>
</tr>
<tr>
<td><label for="references">Beskrivelse af nummer:</label></td>
<td><textarea name="references" id="references" cols="0" rows="0" style="width: 400px; height: 100px;"></textarea>
<input type="hidden" name="user" value="<?php echo $session->username; ?>">
<input type="hidden" name="timestamp" value="<?php echo time(); ?>"></td>
</tr>
</table>
<br />
<input type="submit" value="Submit Application" id="btnSubmit" />
</div>
</form>
</div>
</body>
</html>
******************************
Thanks.php:
<?php
// Check for a degraded file upload, this means SWFUpload did not load and the user used the standard HTML upload
$used_degraded = false;
$resume_id = "";
if (isset($_FILES["resume_degraded"]) && is_uploaded_file($_FILES["resume_degraded"]["tmp_name"]) && $_FILES["resume_degraded"]["error"] == 0) {
$resume_id = $_FILES["resume_degraded"]["name"];
$used_degraded = true;
}
// Check for the file id we should have gotten from SWFUpload
if (isset($_POST["hidFileID"]) && $_POST["hidFileID"] != "" ) {
$resume_id = $_POST["hidFileID"];
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>SWFUpload Demos - Classic Form Demo</title>
<link href="css/default.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="content">
<h2>Classic Form Demo</h2>
<?php if ($resume_id == "") { ?>
<p>Your resume was not received.</p>
<?php } else { ?>
<table>
<tr>
<td>Tittel: </td>
<td><?php echo htmlspecialchars($_POST["tittel"]); ?> </td>
</tr>
<tr>
<td>Genre: </td>
<td><?php echo htmlspecialchars($_POST["style"]); ?> </td>
</tr>
<tr>
<td>nummer ID: </td>
<td><?php echo htmlspecialchars($resume_id); ?> </td>
</tr>
<tr>
<td>Beskrivelse: </td>
<td><?php echo htmlspecialchars($_POST["references"]); ?> </td>
</tr>
</table>
<?php if ($used_degraded) { ?>
<p>You used the standard HTML form.</p>
<?php } ?>
<hr width="90%" />
<p> Thank you for your submission. </p>
<?php } ?>
<p><a href="index.php">Submit another Application</a></p>
<p> Thanks for trying this demo. Your files are discarded for the purposes of this demo. </p>
</div>
</body>
</html>
*****************************
upload.php:
<?php
// The Demos don't save files
if (isset($_FILES["resume_file"]) && is_uploaded_file($_FILES["resume_file"]["tmp_name"]) && $_FILES["resume_file"]["error"] == 0) {
echo rand(1000000, 9999999); // Create a pretend file id, this might have come from a database.
}
exit(0); // If there was an error we don't return anything and the webpage will have to deal with it.
?>
