Dysan Posted November 14, 2007 Share Posted November 14, 2007 Hi. The following code, is my attempt of uploading an MP3 file to the server, and then storing the path of the file inside a database. Why doesn't the line of code shown in bold work? if (($_FILES["file"]["type"] == "audio/mpeg3")) { if ($_FILES["file"]["error"] > 0) { echo "Return Code: " . $_FILES["file"]["error"] . "<br />"; } else { echo "Upload: " . $_FILES["file"]["name"] . "<br />"; echo "Type: " . $_FILES["file"]["type"] . "<br />"; echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />"; echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />"; if (file_exists("upload/" . $_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . " already exists. "; } else { move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]); echo "Stored in: " . "upload/" . $_FILES["file"]["name"]; $sql="INSERT INTO Music (Path) VALUES [b] ('"upload/" . $_FILES["file"]["name"]')";[/b] } } } else { echo "Invalid file"; } Quote Link to comment Share on other sites More sharing options...
rajivgonsalves Posted November 14, 2007 Share Posted November 14, 2007 try this $sql="INSERT INTO Music (Path) VALUES ('upload/{$_FILES['file']['name']}')"; Quote Link to comment Share on other sites More sharing options...
Psycho Posted November 14, 2007 Share Posted November 14, 2007 The code posted above should work fine, but to answer your question directly the problem was that your quotes were not properly implemented. $sql="INSERT INTO Music (Path) VALUES ('"upload/" . $_FILES["file"]["name"]')"; The first double quote starts the string. Then your second double quote ends the string. Then you make the opposite error. When appending the variable tot he string you should be outside the quotes, but then you append "text" to the end of the variable without first containing it within quotes. Although the above example will work, here is what I expected you were trying to accomplish: $sql="INSERT INTO Music (Path) VALUES ('upload/" . $_FILES['file']['name'] . "')"; Quote Link to comment Share on other sites More sharing options...
aschk Posted November 14, 2007 Share Posted November 14, 2007 My favourite method these days is the following : $sql="INSERT INTO Music (Path) VALUES ('upload/{$_FILES['file']['name']}')"; Using {$varname}. N.B. this ONLY works with double quotes ("). Just thought i would throw it into the mix... Quote Link to comment Share on other sites More sharing options...
Dysan Posted November 14, 2007 Author Share Posted November 14, 2007 How do I create a script, that outputs the file type e.g. "image/gif"? As the file type I have to upload mp3's "audio/mpeg3". Quote Link to comment Share on other sites More sharing options...
aschk Posted November 14, 2007 Share Posted November 14, 2007 mime_content_type($filename) will give you what you want. Please bear in mind this is deprecated now and have been replaced by finfo_file http://uk3.php.net/manual/en/function.finfo-file.php Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.