【问题标题】:uploading an image in codeigniter trouble在codeigniter麻烦中上传图像
【发布时间】:2017-04-02 01:53:28
【问题描述】:

我有一个教程中的代码,但我不知道发生了什么,这就是为什么我的不起作用。我只是按照教程操作,代码不起作用。我正在使用 codeigniter 框架,请帮我解决这些问题,我的控制台也没有错误,我不知道发生了什么。它也不发送来自 ajax 的请求。请检查ajax中的代码。谢谢。

ajax 代码:

$(function () {
  var inputFile = $('input[name=file]');
  var uploadURI = $('#form-upload').attr('action');

  $('#upload-btn').on('click', function(event) {
     var fileToUpload = inputFile[0].files[0];
     if(fileToUpload != 'undefine') {
        var formData = new FormData();
        formData.append("file", fileToUpload);
        $.ajax({
            url: uploadURI,
            type: "POST",
            data: formData,
            processData: false,
            contentData: false,
            success: function(data) {
              alert("Profile picture updated!");
            }
        });
     }
  });
});

从视图:

<form action="<?php echo site_url("profile/profile_picture") ?>" id="form-upload">            
              <div class="fileinput fileinput-new input-group" data-provides="fileinput">
                <div class="form-control" data-trigger="fileinput"><i class="glyphicon glyphicon-file fileinput-exists"></i> <span class="fileinput-filename"></span></div>
                <span class="input-group-addon btn btn-default btn-file"><span class="fileinput-new"><i class="glyphicon glyphicon-paperclip"></i> Select file</span><input type="file" name="file"></span>
                <a href="#" id="upload-btn" class="input-group-addon btn btn-success fileinput-exists"><i class="glyphicon glyphicon-open"></i> Upload</a>
              </div>
            </form>

控制器:

public function profile_picture() {
        $config['upload_path'] = "./assets/uploaded_images/";
        $config['allowed_types'] = 'gif|jpg|png';
        $this->load->library('upload', $config);

        if($this->upload->do_upload("file")) {

        }
        else {
            echo "File cannot be uploaded";
        }
    }

我收到了这个错误:

File cannot be uploadedarray(1) {
      ["error"]=>
      string(43) "<p>You did not select a file to upload.</p>"
    }

【问题讨论】:

标签: php jquery ajax codeigniter upload


【解决方案1】:

好的,问题是它应该是“contentType”而不是“contentData”。这是更新的JS代码

$(function () {
    var inputFile = $('input[name=file]');
    var uploadURI = $('#form-upload').attr('action');

    $('#upload-btn').on('click', function(event) {
        var fileToUpload = inputFile[0].files[0];
        if(fileToUpload != 'undefine') {
            var formData = new FormData($('#form-upload')[0]);
            $.ajax({
                type: "POST",
                url: uploadURI,
                data: formData,
                processData: false,
                contentType: false,
                success: function(msg) {
                    alert("Profile picture updated!");
                }
            });
        }
    });
});

【讨论】:

  • 我有一个问题,为什么代码不使用 ajax。它不发送数据。它不执行我的控制器
  • 我认为您的 formData 构造不正确。我已经编辑了我的评论并给出了一个链接。如果您的问题没有解决,您可以按照此操作并粘贴更新的代码
  • 你能修复我发布的代码吗?仍然很可能是相似的
  • 1.检查浏览器控制台,是否有任何错误 2. after/before formData.append("file", fileToUpload);添加另一行 formData.append("action", uploadURI);
  • 您好,先生。我在控制台中获得了成功,但作为回应我得到了这个:文件无法上传
【解决方案2】:

你可以在我的线程中说,我给出了使用 ajax 上传多张图片的解决方案,它非常简单,只需从我的解决方案名称中删除数组,然后你就会在控制器中获得你的图像。

这是我的解决方案的链接。 getting error while uploading image via Ajax

【讨论】:

  • 我只想上传 1 个文件,先生
  • 正如我所说的从文件的输入字段中删除数组
  • 在控制器中,获取唯一的图像。
猜你喜欢
  • 1970-01-01
  • 2012-02-25
  • 2018-02-05
  • 1970-01-01
  • 2013-03-14
  • 1970-01-01
  • 2016-06-14
  • 1970-01-01
  • 2011-09-30
相关资源
最近更新 更多