Note that there are some explanatory texts on larger screens.

plurals
  1. POPHP mp3 upload not working. JPEGS and most other file types work though
    text
    copied!<p>I a bit of newbie to PHP and coding pretty much. I created the site www.newbornsounds.co.uk with pure HTML and css but am now integrating membership features with PHP. I am having trouble with my upload script, it won't allow audio uploads. I have checked that the php.ini allows upload sizes large enough and have gone through everything i can think of. When an audio file is selceted only the name is echoed and not the size or file type. By the way I am using wamp as the dev server if that has any significance.</p> <p>Here is the PHP script with form inside the php file:</p> <pre><code>&lt;?php // Connects to your Database include("phpscripts/database.php"); //checks cookies to make sure they are logged in { $username = $_COOKIE['username']; $pass = $_COOKIE['password']; $check = mysql_query("SELECT * FROM members WHERE username = '$username'")or die(mysql_error()); } while($info = mysql_fetch_array( $check )) { } if ($pass != $info['password']) { } else { header("Location: login.html"); } //********************************************************************************************** echo "Please wait while we attempt to upload your file...&lt;br&gt;&lt;br&gt;"; //********************************************************************************************** $target_path = "../uploads/"; $flag = 0; // Safety net, if this gets to 1 at any point in the process, we don't upload. $filename = $_FILES['file']['name']; $filesize = $_FILES['file']['size']; $mimetype = $_FILES['file']['type']; $filename = htmlentities($filename); $filesize = htmlentities($filesize); $mimetype = htmlentities($mimetype); $target_path = $target_path . basename( $filename ); if($filename != ""){ echo "Beginning upload process for file named: ".$filename."&lt;br&gt;"; echo "Filesize: ".$filesize."&lt;br&gt;"; echo "Type: ".$mimetype."&lt;br&gt;&lt;br&gt;"; } //First generate a MD5 hash of what the new file name will be //Force a MP3 extention on the file we are uploading $hashedfilename = md5($filename); $hashedfilename = $hashedfilename.".mp3"; //Check for empty file if($filename == ""){ $error = "No File Exists!"; $flag = $flag + 1; } //Now we check that the file doesn't already exist. $existname = "../uploads/".$hashedfilename; if(file_exists($existname)){ if($flag == 0){ $error = "Your file already exists on the server! Please choose another file to upload or rename the file on your computer and try uploading it again!"; } $flag = $flag + 1; } //Whitelisted files - Only allow files with MP3 extention onto server... $whitelist = array(".mp3"); foreach ($whitelist as $ending) { if(substr($filename, -(strlen($ending))) != $ending) { $error = "The file type or extention you are trying to upload is not allowed! You can only upload MP3 files to the server!"; $flag++; } } //Now we check the filesize. If it is too big or too small then we reject it //MP3 files should be at least 1MB and no more than 6.5 MB if($filesize &gt; 8920600){ //File is too large if($flag == 0){ $error = "The file you are trying to upload is too large! Your file can be up to 8.5 MB in size only. Please upload a smaller MP3 file or encode your file with a lower bitrate."; } $flag = $flag + 1; } if($filesize &lt; 104860){ //File is too small if($flag == 0){ $error = "The file you are trying to upload is too small! Your file has been marked as suspicious because our system has determined that it is too small to be a valid MP3 file. Valid MP3 files must be bigger than 1 MB and smaller than .5 MB."; } $flag = $flag + 1; } //Check the mimetype of the file if($mimetype != "audio/mp3" and $mimetype != "audio/mpeg"){ if($flag == 0){ $error = "The file you are trying to upload does not contain expected data. Are you sure that the file is an MP3?"; } $flag = $flag + 1; } //Check that the file really is an MP3 file by reading the first few characters of the file $f = @fopen($_FILES['uploadedfile']['tmp_name'],'r'); $s = @fread($f,3); @fclose($f); if($s != "ID3"){ if($flag == 0){ $error = "The file you are attempting to upload does not appear to be a valid MP3 file."; } $flag++; } //All checks are done, actually move the file... if($flag == 0){ if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) { //Change the filename to MD5 hash and FORCE a MP3 extention. if(@file_exists("uploads/".$filename)){ //Rename the file to an MD5 version rename("uploads/".$filename, "uploads/".$hashedfilename); echo "The file ". basename( $filename ). " has been uploaded. Your file is &lt;a href='uploads/$hashedfilename'&gt;here&lt;/a&gt;."; } else{ echo "There was an error uploading the file, please try again!"; } } else{ echo "There was an error uploading the file, please try again!"; } } else { echo "File Upload Failed!&lt;br&gt;"; if($error != ""){ echo $error; } } ?&gt; &lt;div id="uploadcontainer"&gt; &lt;script type="text/javascript"&gt; function performClick(node) { var evt = document.createEvent("MouseEvents"); evt.initEvent("click", true, false); node.dispatchEvent(evt); } &lt;/script&gt; &lt;a href="#" onclick="performClick(document.getElementById('file'));"&gt; &lt;div id="selectfile"&gt; &lt;img src="images/upload.gif" width="100" height="96" alt="upload button" border="0"&gt; &lt;br&gt;&lt;br&gt; &lt;input type="button" id="uploader" value="Select a file and upload it" class="button" &gt; &lt;/div&gt;&lt;/a&gt; &lt;form action="&lt;?php echo htmlentities($_SERVER['PHP_SELF']); ?&gt;" id="form" method="post" enctype="multipart/form-data"&gt; &lt;input type="file" id="file" name="file" class="noshow"&gt; &lt;/form&gt; &lt;script type="text/javascript"&gt; $(function(){ $("#file").change(function(){ $("#form").submit(); }); }); &lt;/script&gt; &lt;br&gt;&lt;p2&gt;We support MP3, WAV, FLAC, AIFF and MP2 file formats&lt;/p2&gt; &lt;br&gt;&lt;br&gt; &lt;p2&gt;&lt;b&gt;Problem uploading?&lt;/b&gt; Get in touch via&lt;a href="mailto:artists@newbornsounds.co.uk"&gt;&lt;b&gt; email &lt;/b&gt;&lt;/a&gt;and we'll help sort things out.&lt;br&gt; </code></pre> <p><b>Important:</b> You must own the rights to all the tracks you upload and you must be an unsigned artist. </p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload