AJAX在通过xhr.send()发送数据时遇到问题?

时间:2013-07-21 05:53:17

标签: javascript ajax

我正在使用this代码上传和显示图片。 Javascript如下......

xhr.open("POST", $id("upload").action, true);
xhr.setRequestHeader("X_FILENAME", file.name);
xhr.send(file);

这是我的PHP

$fn = (isset($_SERVER['HTTP_X_FILENAME']) ? $_SERVER['HTTP_X_FILENAME'] : false);

if ($fn) {

    // AJAX call
    file_put_contents(
        'uploads/' . $fn,
        file_get_contents('php://input')
    );
    echo "$fn uploaded";
    exit();

}
else {

    // form submit
    $files = $_FILES['fileselect'];

    foreach ($files['error'] as $id => $err) {
        if ($err == UPLOAD_ERR_OK) {
            $fn = $files['name'][$id];
            move_uploaded_file(
                $files['tmp_name'][$id],
                'uploads/' . $fn
            );
            echo "<p>File $fn uploaded.</p>";
        }
    }

}

我遇到的问题是我还要为图片文件发送一个id以便更新我的表格。如果我可以做这样的事情会很棒......

xhr.open("POST", $id("upload").action, true);
xhr.setRequestHeader("X_FILENAME", file.name);
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.send(file + "fname=david");

但我完全清楚我不能在同一个发送中发送两种类型的数据。完成此任务的最佳方式是什么?

0 个答案:

没有答案