在codeigniter中使用ajax上传音频mp3文件

时间:2016-11-20 14:37:04

标签: javascript php ajax codeigniter

美好的一天。我有一个代码可以上传图像文件,但我不知道这个代码是否也适用于上传媒体文件,如mp3。我的项目需要上传媒体文件,但我的代码不起作用。

查看

形式

<form name="uploadform" id="uploadform" method="POST" enctype="multipart/form-data" >
                <div class="form-group">
                    <label for="Title">Song Title</label>
                    <input type="text" class="form-control" id="title" placeholder="Title">
                </div>
                <div class="form-group">
                    <label for="Artist">Artist/Singer</label>
                    <input type="text" class="form-control" id="artist" placeholder="Artist/Singer">
                </div>
                <div class="form-group">
                    <label for="lyrics">Lyrics</label>
                    <textarea class="form-control" id="lyrics" placeholder="Lyrics"></textarea>
                </div>
                <div class="form-group">
                    <label for="Artist">Audio</label>
                    <input type="file" class="form-control" name="file" id="file" accept="audio/mp3">

                </div>

                <div class="form-group">
                <span class="input-group-btn">
                        <button class="btn btn-primary" id="btn">UPLOAD</button>
                  </span>
                </div>

            </form>

查看

的javascript

$('#btn').click(function() {
var title = document.getElementById('title').value;
var artist = document.getElementById('artist').value;
var lyrics = document.getElementById('lyrics').value;
var file = $('#file').val();
     $.ajax({
  type: "post",
  url: "<?php echo base_url('Admin/upload/')?>",
  cache: false,
  mimeType: "multipart/form-data",
  contentType: false,
  processData: false,
  data: {
    "title" : title,
    "artist" : artist,
    "lyrics" : lyrics,
    "file" : file,
  },
  success: function(data){      
  try{  
   console.log(data);
  }catch(e) {  
   alert('Exception while request..');
  }  
  },
  error: function(){      
   alert('Error while request..');
  }
 });


});

控制器

admin.php的

public function upload()
    {
        $title = $this->input->post('title');
        $artist = $this->input->post('artist');
        $lyrics = $this->input->post('lyrics');

         $attachment_file=$_FILES["file"];
              $output_dir = "uploads/";
              $fileName = $_FILES["attachment_file"]["name"];
              move_uploaded_file($_FILES["attachment_file"]["tmp_name"],$output_dir.$fileName);
              echo "File uploaded successfully";

    }

该代码给了我一条错误消息。

<h4>A PHP Error was encountered</h4>

<p>Severity: Notice</p>
<p>Message:  Undefined index: file</p>
<p>Filename: controllers/Admin.php</p>
<p>Line Number: 35</p>

我不知道为什么文件是未定义的索引,因为&#39;文件&#39;存在于表格标签上。

我的代码无法上传mp3。我该如何解决这个问题?

0 个答案:

没有答案