2016-12-28 2 views
-1

Я не могу загрузить файл с помощью Ajax. Я хочу загрузить только один файл. Ниже приведены коды, которые я сделал.Ошибка при загрузке файла в Ajax

HTML & Ajax

$(document).ready(function(){ 
    $("input:submit").on('click', function(e) { 
    e.preventDefault(); 
    var submit = $("#submit").val(), 
    file = document.getElementById('slip_gaji').files[0], 
    fd = new FormData(); 
    fd.append("submit", submit); 
    fd.append("slip_gaji", file); 
    $.ajax({ 
     url: "insert-slip.php", 
     type: "POST", 
     data: fd, 
     processData: false, 
     contentType: false 
    }).done(function(data){ 
     $('#result_insert').html(data) 
    }); 
    }); 
}); 

<form id="upload_gaji" name="upload_gaji enctype="multipart/form-data" method="post"> 
    <fieldset class="account-info"> 
     <label> 
      Slip Gaji <br> 
      <input type="file" name="slip_gaji" id="slip_gaji"> 
     </label> 
    </fieldset> 
</form> 

PHP - вставка-slip.php

<?php 
if(isset($_POST["submit"])){ 
    if (empty($_FILES['slip_gaji']['tmp_name'])) { 
     $err[] .= 'No File Selected'; 
    } else { 
     $fname = $_FILES['slip_gaji']['name']; 
     $fpath = "uploads/" . date('d-m-Y-H-i-s').'-'.$fname; 
     $move = move_uploaded_file($fname, $fpath); 
    } 
} 

if (!empty($err)) { 
    echo '<ol style="color: red;"><li>' . implode('</li><li>', $err) . '</li></ol>'; 
} else { 
    echo 'File Uploaded!'; 
} 

echo '<pre>'; var_dump($_FILES); echo '</pre>'; 
?> 

Из кодов, которые я сделал, ни один файл не был загружен на папку загрузок. Если я использую var_dump($_FILES). Я получил вывод:

array(1) { 
    ["slip_gaji"]=> 
    array(5) { 
    ["name"]=> 
    string(12) "cuti_ceo.txt" 
    ["type"]=> 
    string(10) "text/plain" 
    ["tmp_name"]=> 
    string(24) "C:\xampp\tmp\php248A.tmp" 
    ["error"]=> 
    int(0) 
    ["size"]=> 
    int(196) 
    } 
} 

Может кто-нибудь проверить, что такое ошибка?

+0

'имя =" upload_gaji', что не хватает цитаты, за одну вещь. –

+0

взгляд на вашей консоли разработчика и использование отчетов об ошибках –

+0

уже добавить цитату, но забыл обновить здесь – Amran

ответ

1
$fname = $_FILES['slip_gaji']['name']; 
$temp_fpath = $_FILES['slip_gaji']['tmp_name']; 
$fpath = "uploads/" . date('d-m-Y-H-i-s').'-'.$fname; 
$move = move_uploaded_file($temp_fpath, $fpath); 

move_uploaded_file функция нужен полный путь к файлу.

+0

хотя папка находится в том же документе, что и текущий файл? – Amran

+0

Теперь я понимаю: 'tmp_name' содержит путь к файлу. Правильно ли я? Он работает. Спасибо большое! – Amran

+0

Да, правильно. –

Смежные вопросы