2017-05-28 83 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代碼,所以我明白我一定犯了很多錯誤。如果有人能幫助我解決這個問題,我將不勝感激。

+0

你有ENCTYPE = 「的multipart/form-data的」 HTML表單上?你有沒有檢查是否有任何要$ _FILES而不是$ _FILES [0]? – Blueline

+0

嗨,感謝您的回覆。是的,我確實有enctype =「multipart/form-data」,我確實在我發送的對象數據上做了一個控制檯.log。雖然所有其他投入都很好,但這似乎有一個未定義的價值。我不知道爲什麼 –

回答

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']); 
    } 

?>