如何组合这两个脚本并使其能够存储音频文件?

时间:2015-08-08 16:30:25

标签: php mysql forms audio

晚上好,我在提交表单时无法上传音频文件。输入类型命名为' user_music'在表格内。

我试图检查&每次成功提交音频文件时,都会创建一个唯一的文件夹名称。因此,最终每个刚提交的音频文件都会保存移动到刚刚创建的唯一文件夹名称中。 然后我希望它将该audiofile的文件目的地存储到" user_music"数据库表的字段"音乐"以便我以后可以使用它。 这就是我要做的一切。

我尝试将 这样的内容实施到我目前所拥有的内容中,但是我不知道如何去做:

 if (isset($_FILES['user_music'])) {
    if ((($_FILES["user_music"]["type"]=="audio/mp3") || (@$_FILES["user_music"]["type"]=="audio/ogg") || ($_FILES["user_music"]["type"]=="audio/wav"))&&($_FILES["user_music"]["size"] < 15048576)) //15 Megabyte
    {
    $safe = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    $mus_rand = substr(str_shuffle($safe), 0, 15);
    mkdir("userdata/mms/$mus_rand");
    }

我试图将上述内容实现到我目前所拥有的内容中,这就是:

 $uploads_dir = '/userdata/mms';

        foreach ($_FILES["user_music"]["error"] as $key => $error) {
            if ($error == UPLOAD_ERR_OK) {
                $tmp_name = $_FILES["user_music"]["tmp_name"][$key];
                $name = $_FILES["user_music"]["name"][$key];
                move_uploaded_file($tmp_name, "$uploads_dir/$name");


                $music_query = "INSERT INTO music WHERE user_music='$mus_rand/$music_name' WHERE username='$user'"

            }
        }

这是我的连接脚本:

 $db = mysql_connect("localhost","root","Mylife2015") or die ("Couldn't   
 connect to SQL server");
 mysql_select_db("i-neo") or die("Couldn't select DB");

 session_start();
 if (isset($_SESSION['user_login'])) {
 $user = $_SESSION["user_login"];
 }
 else {
 $user = "";
 }     

如下所示,整个表单的提交按钮名为&#39; upl&#39;。

这是带有预处理语句的插入查询(我仍然试图掌握准备好的语句):

  $upl = @$_POST['upl'];
  if ($upl){
  $query = "INSERT INTO music ( , $user, $man, $sn, $an, $sa, $um, $d) 
  VALUES (?,?,?,?,?,?,?,?)";
  $stmt = $db->prepare($query);
  $stmt->bind_param("sssssbbs", $user, $man, $sn, $an, $sa, $um, $d); // 
  bind variables

 $un = $user; // User Logged in 
 $man = "artist_name"; // Artist Name
 $sn = "audio_name"; // Audio Name
 $an = "album_name"; // Album Name
 $sa = "song_art"; // Song's Art Cover
 $um = "user_music"; // Audio File
 $d  = "d-m-y h:i:s a"; // Date

 $stmt->execute()
 }

以下是我的php表单和数据库表(如果需要)

这是我的php表单:

<form action="upload.php" method="POST">
  <input type="text" name="artist_name" placeholder="Artist's Name"/><br/ <br/>
  <input type="text" name="audio_name" placeholder="Song Name"/><br/><br/>
  <input type="text" name="album_name" placeholder="Album Name"/><br/><br/>
  <input type="file" name="song_art" /><br/> Song Art Picture<br/>
  <input type="file" name="user_music" />Music File<br/>
  <input type="submit" name="upl" value="Upload"/>
</form>

最后,这是要插入的表:

CREATE TABLE IF NOT EXISTS `music` (
`id` int(11) NOT NULL,
  `username` varchar(255) NOT NULL,
  `artist_name` varchar(255) NOT NULL,
  `audio_name` varchar(255) NOT NULL,
  `album_name` varchar(255) NOT NULL,
  `song_art` text NOT NULL,
  `user_music` text NOT NULL,
  `date_uplaoded` datetime NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;

0 个答案:

没有答案