AJAX上传时清空$ _FILES

时间:2015-04-12 22:27:43

标签: php jquery html ajax upload

我遇到以下问题: 我试图通过Ajax上传文件

这是HTML文件:

<html>
<header>
    <link rel="stylesheet" href="useme.css"/>
    <script src="jq.js"></script>
    <script src="actions.js"></script>
</header>
<body>
<form enctype="multipart/form-data">
    <input type="hidden" name="MAX_FILE_SIZE" value="30000000" />
    <input type="file" id="file" name="file"/>
    <input type="button" value="Click" id="submitBtn"/>
</form>    
<span class="status">no status</span>
</body>

JavaScript文件:

   /**
     * Created by Kenny on 12.04.2015.
     */
$(document).ready(function(){
$("#submitBtn").click(function(){
    var filename = $("#file").serialize();
    $.ajax({
        processData: false,  // tell jQuery not to process the data
        contentType: false, // tell jQuery not to set contentType
        url: "upload.php",
        enctype: 'multipart/form-data',
        data : {
            file: filename
        },
        type : "POST",
        success: function(data){
            if(data != "fail")
            $(".status").html("Upload is availible at: " + data);
            else
            $(".status").html("Upload failed.");           
         }

    });
    });
});

最后但不是最近执行魔术的PHP文件(不是真正的atm)

<?php
/**
 * Created by PhpStorm.
 * User: Kenny
 * Date: 12.04.2015
 * Time: 23:55
 */
$uploaddir = '/many/upload/' . uniqid() . '/';

    if(!file_exists($uploaddir)){
    mkdir($uploaddir, 0777, true);
}
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo "http://use.hints.me/" . $uploaddir;
    file_put_contents($uploaddir . "/index.php", "<?php Header('Location: " . basename($_FILES['userfile']['name']) . "'); ?>");
} else {
    echo "fail";
}
?>

我的问题是我在PHP文件中只获得空的$ _FILES,当我使用标准POST表单时,PHP文件以某种方式工作正常,但是使用Ajax它根本不起作用。

请原谅我凌乱的代码,它只是我的一个朋友的概念证明,而不是用于提供严肃的文件上传网站。我只是想让这个工作。

我之前在这里查过的东西:

如果启用了文件上载,请检查php.ini文件

添加了enctype =&#34; multipart / form-data&#34;到表格

将MAX_FILE_SIZE标记添加到表单

全部检查了StackOverFlow

0 个答案:

没有答案