簡體   English   中英

在Codeigniter問題中上傳圖片

[英]uploading an image in codeigniter trouble

我有本教程中的代碼,我不知道發生了什么,為什么我的代碼不起作用。 我只是按照教程操作,所以代碼不起作用。 我使用的是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>"
    }

確定的問題是它應該是“ 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上傳多個圖像的解決方案,這很容易,只需從解決方案名稱中刪除數組,然后您就可以在控制器中獲取圖像。

這是我的解決方案的鏈接。 通過Ajax上傳圖像時出錯

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM