【问题标题】:How to upload image from a dynamically Generated Form in CodeIgniter using ajax如何使用 ajax 从 CodeIgniter 中动态生成的表单上传图像
【发布时间】:2015-10-20 09:43:28
【问题描述】:

我想使用 jquery ajax 将图像上传到本地文件夹。复杂的部分是我有动态生成的表单,对于那些表单和字段,我给它提供了 id,以便显示提交的表单,如下所示。我正在使用以下代码,但图片未上传。

查看:Upload_View.php

<script type="text/javascript">
    function sendVideoData(frm_id)
    {    
        var data = new FormData(document.getElementById("post_video_"+frm_id));
        // make the AJAX request
        jQuery.ajax({
            type: "POST",
            url: "<?php echo base_url(); ?>"+"dashboard/do_upload",
            data: data+'&form_id='+frm_id,
            mimeType:"multipart/form-data",
            contentType: false,
            cache: false,
            processData:false,
            dataType: 'json',
            success: function (data) {
                alert("data"+data);
            },            
        });        
        return false;
    }
</script>

<form name="post_video" id="post_video_<?=$row1['id']?>" method="post" onsubmit="return sendVideoData(<?=$row1['id']?>)">           
    <input type="file" name="save_movie_<?=$row1['id']?>" id="movie_<?=$row1['id']?>" /> 
    <input name="type_lecture_id" class="get_lecture_id" id="get_lecture_id_<?=$row1['id']?>" value="<?=$row1['id']?>" type="hidden"/>
    <input type="button" class="postbtn" id="submit_movie_<?=$row1['id']?>" value="Upload Video File"/>
</form>

控制器:

$formid=$_POST['form_id']; 

$filename='save_movie_'.$formid;
$path_parts = pathinfo($_FILES[$filename]["name"]);
$extension = $path_parts['extension'];
$Random_file_name=$filename.".".$extension;
move_uploaded_file($_FILES[$filename]['tmp_name'], "http://localhost/dummy/uploads/".$Random_file_name);

save_movie_ 这是文件控件的 ID,$formid 显示我们必须从哪个表单和哪个字段获取数据,但是因为我是 Codeigniter 的新手,所以我不知道如何上传它。还有一件事我想显示进度条来显示图片上传的进度。请回复。谢谢...

【问题讨论】:

    标签: php jquery ajax codeigniter codeigniter-2


    【解决方案1】:

    您必须通过以下方式修改您的 jQuery ajax 函数

       var data = new FormData(document.getElementById("post_video_"+frm_id)[0]);
       jQuery("#progressbar").show(); // add your prgress bar here like this
       jQuery.ajax({
            type: "POST",
            url: "<?php echo base_url(); ?>"+"dashboard/do_upload",
            data: data+'&form_id='+frm_id,
            mimeType:"multipart/form-data",
            contentType: false,
            async: false,
            cache: false,
            processData:false,
            dataType: 'json',
            success: function (data) {
                alert("data"+data);
                jQuery("#progressbar").hide(); //hide your loader like this
            },            
        });        
        return false;
    

    谢谢。

    【讨论】:

    • 感谢 Shyam,但主要问题是我生成了不同的表单,我必须获取用户上传文件的字段,例如。 form_id='frm_id' 是表单 id 我如何在 do_upload 控制器函数上获取它并从中上传图像。
    • 正如您在我的问题中看到的那样,表单和字段的动态 ID。我如何上传图像或其他文件。
    • 是的。您可以在输入提交按钮中使用 javascript 的 onclick 事件。例如。希望这会奏效。谢谢你。 @user3653474
    • 我正在做我正在从这个 sendVideoData(=$row1['id']?>) 代码将 id 传递给我的函数,并且我已经将该 frm_id 也传递给了控制器,但我有怎么上传的问题。你能告诉我如何将它上传到我的本地文件夹。
    • 因为我到处搜索,但我没有找到任何关于使用动态生成的表单和字段上传图片的解决方案。
    猜你喜欢
    • 2014-12-13
    • 2014-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-24
    • 2021-08-14
    • 2015-01-31
    相关资源
    最近更新 更多