2017-05-28 20 views
0

質問が愚かな場合、私はAJAXが本当に私を許してくれるのは本当に新しいです。私は多段階のフォームを持っていて、それは4つの部分を持っており、これを送るには$.post() ajaxリクエストを使用しています。他のすべての詳細はうまくいきますが、ファイルをアップロードできません。これは私がやろうとしていることです

ここで私はフォームの値をキャッチしようとしています。

var data_img = new FormData(); 
var hello = $.each(jQuery('#pan_file')[0].files, function (i, file) { 
       data_img.append('file-' + i, file); 
      }); 

次に、これらの値をオブジェクト変数に渡します。

obj_params.pan_file = hello; 

そしてajax.post()

$.post('<?php echo base_url(); ?>get-ekyc-form', obj_params, function (msg) { 
    if (msg == "1") { 
     swal("Success!", "EKYC Form has been Submitted Successfully", "success"); 
     window.location = '<?php echo base_url(); ?>list-active-requirement'; 
    } 
}, "json", "processData:false", "contentType:false"); 
return true; 

を保存するためにそれを送信すると、私は、ファイル転送を行う場所です。

if ($_FILES['file-0']['name'] != "") { 
    $image_data = array(); 
    //config initialise for uploading image 
    $config['upload_path'] = './media/front/img/quote-docs/'; 
    $config['allowed_types'] = 'xlsx|pdf|doc|docx'; 
    $config['max_size'] = '5000'; 
    $config['max_width'] = '12024'; 
    $config['max_height'] = '7268'; 
    $config['file_name'] = time(); 
    //loading upload library 
    $this->upload->initialize($config); 
    $this->load->library('upload', $config); 
    if (!$this->upload->do_upload('file-0')) { 
     $error = array('error' => $this->upload->display_errors()); 
    } else { 
     $data = array('upload_data' => $this->upload->data()); 
     $image_data = $this->upload->data(); 
     $file_name = $image_data['file-0']; 
    } 
    $file_name = $image_data['file_name']; 
} else { 
    $file_name = ''; 
} 

また、私は誰かのelsesコードに取り組んでいるので、私は多くの間違いをしているに違いないと理解しています。誰かが私の周りで私を助けることができたら、私は感謝します。あなたは、HTMLフォーム上のenctype = "multipart/form-data" を

+0

を持っていますか? $ _FILES [0]ではなく、$ _FILESに何かがあるかどうかチェックしましたか? – Blueline

+0

こんにちは、返信ありがとうございます。はい、私はenctype = "multipart/form-data"を持っています。私は送信しているオブジェクトデータのコンソール.logをやりました。他のすべての入力がうまくいく間に、これは未定義の値を持つようです。私はなぜthoを知らない –

答えて

1

HTMLコード

<input id="picture" type="file" name="pic" /> 
<button id="upload">Upload</button> 





$('#upload').on('click', function() { 
     var file_data = $('#picture').prop('files')[0]; 
     var form_data = new FormData();     
     form_data.append('file', file_data); 
     alert(form_data);        
     $.ajax({ 
        url: 'upload.php', // point to server-side PHP script 
        dataType: 'text', // what to expect back from the PHP script, if anything 
        cache: false, 
        contentType: false, 
        processData: false, 
        data: form_data,       
        type: 'post', 
        success: function(php_script_response){ 
         alert(php_script_response); // display response from the PHP script, if any 
        } 
     }); 
    }); 
upload.phpで

<?php 

    if (0 < $_FILES['file']['error']) { 
     echo 'Error: ' . $_FILES['file']['error'] . '<br>'; 
    } 
    else { 
     move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_FILES['file']['name']); 
    } 

?> 
関連する問題