簡體   English   中英

如何使用jQuery的ajax函數和PHP上傳文件?

[英]How to upload files using jQuery's ajax function with PHP?

這是我的無效嘗試:

<script>
    function uploadImageSubmit() {

        var imageFile = $('.imageFile').val();

        $.ajax({

            url: 'ajax.php?request=upload-image&file='+imageFile,
            success: function(output) {
                 alert(output);                    
            }

        });

    }
</script>

<h2>Upload File</h2>

<form>
    <input type="file" class="imageFile" />
    <a onClick="uploadImageSubmit()">Upload</a>
</form>

“ ajax.php”上的代碼:

<?php

$action = $_GET['request'];

switch($action) {

    case 'upload-image':

        $imageFile =  $_GET['file'];

        $name = $_FILES[$imageFile] ['name'];
        $tmpLocation = $_FILES[$imageFile] ['tmp_name'];

            $upload = move_uploaded_file($tmpLocation, "files/$name");
            echo ($upload) ? $name.' uploaded successfully!' : 'File not uploaded.';

    end;

}

?>

我收到未上傳的消息文件。 我認為這是因為即使可以通過url傳遞字符串,但由於某些原因文件路徑也不能。 但是話又說回來,我不知道為什么它不起作用。 有人可以找出問題所在嗎?

XmlHttpRequest不支持上傳文件。 您需要使用一些隱藏的iframe或Flash解決方案。

您不能使用純JS / AJAX上傳文件。 一個已知的技巧是將文件發布到隱藏的iframe並更新iframe。

實際上, HTML5和新的File API確實支持通過XmlHttpRequest上傳。 它在Firefox 4和Chrome中運行良好。

暫無
暫無

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

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