2016-12-28 91 views
-1

我無法使用Ajax上傳文件。我只想上傳一個文件。以下是我所做的代碼。上傳Ajax文件時出錯

HTML &阿賈克斯

$(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

'NAME =「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

是的,正確的。 –