簡體   English   中英

PHP AJAX圖像上傳示例未上傳

[英]PHP AJAX Image Upload Example Not Uploading

我的代碼在控制台上沒有任何錯誤。 當我單擊上載按鈕時,什么也沒發生。 按照我使用的教程中的說明,有一封郵件發送給自己,但該圖像未上傳到我的文件夾中,並且也未顯示在我的頁面上。 除非我知道我應該使用jquery(一旦將其上傳到文件夾,我就會進行轉換),我的代碼有什么問題?

<?php

if (!empty($_FILES)) {
    $name = $_FILES['file']['name'];

    if ($_FILES['file']['error'] == 0) {move_uploaded_file($_FILES['file']
            ['tmp_name'], "post_images/" . $name))} 
}

?>



<script type="text/javascript">

var handleUpload = function (event) {
event.preventDefault();
event.stopPropagation();

var fileInput = document.getElementById('file');
var data = new FormData();  
data.append('file', fileInput.files[1]);    
var request = new XMLHttpRequest();
request.upload.addEventListener('progress', function(event){
    if (event.lengthComputable) 
    {
    var percent = event.loaded / event.total;
    var progress = document.getElementById('upload_progress');
    while(progress.hasChildNodes()) {
        progress.removeChild(progress.firstChild);          
    }   

progress.appendChild(document.createTextNode(Math.round(percent * 100) + 
    '%'));          

}

});

request.upload.addEventListener('load',function(event) {
document.getElementById('upload_progress').style.display = 'none';
});

request.upload.addEventListener('error', function(event) {
alert('Upload failed');
});

request.open('POST', 'upload.php');
request.setRequestHeader('Cache-Control', 'no-cache');
document.getElementById('upload_progress').style.display = 'block';
request.send(data); 

};


window.addEventListener('load', function(event) {
var submit = document.getElementById('submit');
submit.addEventListener('click', handleUpload);
});

</script>


<div id="uploaded">

<?php

if (!empty($name)) {

echo '<img src="post_images/' . $name . '" width="100" height="100" />';    

}

?>

</div>

<div id="upload_progress"></div>

<div>

<form action="" method="post" enctype="multipart/form-data">

<div>

    <input type="file" id="file" name="file" />
    <input type="submit" id="submit" value="upload" />

</div>

</form>

</div>

非多個文件輸入元素中只有一個文件, fileInput.files[1]嘗試使用第二個文件。

data.append('file', fileInput.files[0]);    

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM