【问题标题】:How to upload music from array in codeigniter如何在codeigniter中从数组上传音乐
【发布时间】:2016-08-21 15:27:29
【问题描述】:

我有音乐文件要上传到数据库 从视图的角度来看,我为音乐输入类型文件添加了更多按钮,并且我得到了该音乐的名称,例如:

music1.mp3,music2.mp3,music3.mp3

之后我在控制器文件上展开了这个。 不知道,这样对吗?

$expaudio = explode(',',$audio);
$audioCount = count($expaudio);
if($audioCount == 0){ $audiolist =  $audio; }
else{ $audiolist =  $expaudio; }


for($i=0; $i<$audioCount; $i++){
            //******************************* UPLOAD MUSIC ********************************//
            $config['allowed_types'] = 'avi|mpeg|mp3|mp4|3gp|wmv'; //video and audio extension
            $config['max_size'] = '40000000'; 
            $config['overwrite'] = FALSE;
            $config['remove_spaces'] = TRUE;
            //$video_name = random_string('numeric', 5);
            $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
            $randomString = '';
            for ($i = 0; $i < 10; $i++) {
                $randomString .= $characters[rand(0, strlen($characters) - 1)];
            }
            $video_name = $randomString;

            $config['file_name'] = $video_name;
            $config['upload_path'] = 'Users/'.$data['loginuserpage'].'/music/'.$project_url.'/audio';

            //$config['allowed_types'] = 'gif|jpg|jpeg|png|doc|docx|ppt|pptx|pdf|txt|avi|mpeg|mp3|mp4|3gp|wmv';    // Image , video and audio
            $this->load->library('upload', $config);

            if (!$this->upload->do_upload($audiolist[$i]))
            {
                $error = array('error' => $this->upload->display_errors());
                $vid_url = '';
                print_r($this->upload->display_errors());
            }
            else
            {
                $upload_data = $this->upload->data(); 
                $aud_name = $upload_data['file_name'];
                $aud_type = $upload_data['file_type'];
                $aud_url = $baseurl.$config['upload_path']."/".$aud_name;
            }
            //******************************* UPLOAD MUSIC ********************************//
        }

我的 Ajax 文件

$("input[name='audio[]']").change(function()
        { 
             var temp =[]
            $("input[name='audio[]']").each(function(i, selected){
             texts =  $(selected).val() 
                temp.push(texts);

                var jcat1 = temp.join(",");
                alert(jcat1);
                 $('#audioarr').val(jcat1);
             });
        }); 
$('form#music').submit(function(e) 
        {
            e.preventDefault();
            var form = $(this);

            /*var purl = form.find('#project_url').val();
            if (purl.length < 8) {
              $('p#purl').html('Please enter a url without space and specialchar');
              return false;
            }*/

            var video = form.find('#video').val();
            var trailer = form.find('#trailer').val();

            dataString = $("form#music").serialize();
            $.ajax({
                url: '<?php echo base_url('video/creations/createmusic'); ?>',
                type: "POST", 
                data: dataString,
                data: new FormData(this), 
                contentType: false,       // The content type used when sending data to the server.
                cache: false,             // To unable request pages to be cached
                processData:false,   
                success: function(data) { $("#success").html(data); }
            });
        });

【问题讨论】:

    标签: javascript ajax codeigniter upload


    【解决方案1】:

    您不需要使用 for 循环来上传多个文件。 由于您将所有文件详细信息存储在单个数组中,因此可以使用

    $this->upload->do_upload('audio'); // input file name
    

    您可以从

    访问上传的文件详细信息
    $data = $this->upload->data();
    
    foreach($data as $audio) {
       `// code goes here...`
    }
    

    【讨论】:

    • 好的,谢谢,.. 但是如何在foreach函数下获取文件名。可以发帖吗?
    猜你喜欢
    • 2011-06-15
    • 2020-12-05
    • 1970-01-01
    • 2015-01-26
    • 1970-01-01
    • 2016-07-08
    • 1970-01-01
    • 1970-01-01
    • 2018-03-28
    相关资源
    最近更新 更多