2017-03-18 22 views
0

ここでは、jquery ajax関数を使用してcsvファイルをアップロードして移動します。jquery ajaxとcodeigniterを使用してcsvファイルをアップロード

$("#file").change(function() { 
    alert($("#file").val()); 
    $.ajax({ 
    url: "<?php echo base_url(); ?>index.php/Task_controller/upload_tasksquestion", 
    type: "post", 
    dataType: 'json', 
    processData: false, 
    contentType: false, 
    data: {file: $("#file").val()}, 
    success: function(text) { 
     alert(text); 
     if(text == "success") { 
      alert("Your image was uploaded successfully"); 
     } 
    }, 
    error: function() { 
     alert("An error occured, please try again.");   
    } 
    }); 
}); 

と私のhtmlコードは次のとおりです。

< input type="file" class="form-control" id="file" name="file"> 

と私はの$ this - >入力 - >ポスト(「ファイル」)のようなコントローラ機能アップロードされたファイル名 でテストしてい。

しかし、コントローラに来ていないので、そのファイルをフォルダに移動したいと思います。 私はミスをやっているところ

...私を助けてください、私のサーバー側のコードは次のとおりです。

$curdate=date('Y-m-d'); 
$path='./assets/fileuploads/'; 
$file=basename($_FILES['file']['name']); 

list($txt, $ext) = explode(".", $file); 
$actual_file_name = time().substr($txt, 5).".".$ext; 
if(move_uploaded_file($_FILES['file']['tmp_name'],$path.$actual_file_name)) 

答えて

0

あなたがAJAX経由でファイルを介して送信するためにFormDataを使用する必要があります。

ファイルをFormDataオブジェクトに格納し、オブジェクトをdataとして渡します。読むFile Uploading Classサーバー側のエンド上のファイルに対処する方法については(特にコントローラのセクションから)

$("#file").change(function() { 
    var fd = new FormData(); 
    fd.append('file', this.files[0]); // since this is your file input 

    $.ajax({ 
     url: "<?php echo base_url(); ?>index.php/Task_controller/upload_tasksquestion", 
     type: "post", 
     dataType: 'json', 
     processData: false, // important 
     contentType: false, // important 
     data: fd, 
     success: function(text) { 
      alert(text); 
      if(text == "success") { 
       alert("Your image was uploaded successfully"); 
      } 
     }, 
     error: function() { 
      alert("An error occured, please try again.");   
     } 
    }); 
}); 

+0

アップロードライブラリを追加する必要はありますか?サーバサイドで?私はテストしているので、常にエラーが発生すると言います。助けてください。 –

+0

指示に従って、 'Upload'ライブラリをロードする必要があります。関連するサーバー側コードで質問を編集します。エラーは多くのことを意味する可能性があります。ブラウザの開発者ツールを開き、すべてのAJAXリクエストを表示するネットワークパネルを見つけて、エラーのために与えられている実際のメッセージを探します。 – Mikey

+0

それは私のサーバー側のコードです:$ config ['upload_path'] = './assets/fileuploads/'; $ config ['allowed_types'] = '.csv/.CSV'; \t \t $ this-> load-> library( 'upload'、$ config); \t \t \t \t echo $ this-> upload-> do_upload( 'fd');ここではアップロードされたファイル名を知りたいだけです。 –

関連する問題