1

我有以下表格:

<form method="post" enctype="multipart/form-data" id="upload"  action="upload.php">  
<input type="file" id="file" name="file" size="10"/>
<input id="uploadbutton" type="button" value="Upload"/>  
</form>

以下Javascript:

$(document).ready(function () {
    $("#uploadbutton").click(function () {
        var filename = $("#file").val();

        $.ajax({
            type: "POST",
            url: "upload.php",
            enctype: 'multipart/form-data',
            data: {
                file: filename
            },
            success: function (text) {
                alert("Data Uploaded: " + text);
            }
        });
    });
});

和以下PHP(作为测试)

echo json_encode($_POST); //uses post to check as $_FILES returns nothing

然后警报将通过响应行通知我,"file: test.jpg"正如您所看到的,尽管这是一个文件名而不是实际文件本身。如何转换我的文件以获取实际文件而不是文件名。

先感谢您。

4

2 回答 2

1

您仍然可以使用“PUT”方法而不是“POST”方法,它适用于除旧浏览器之外的所有浏览器。

请参阅:主题

于 2013-08-20T15:14:20.387 回答
0

您使用的语法对于使用 ajax 上传文件是错误的,您需要将FormData对象作为请求的数据传递并使用processData: false. 但是,某些浏览器不支持FormData,因此您必须回退到在这些浏览器中发布到隐藏的 iframe。

于 2013-08-20T14:59:49.457 回答