javascript - 将照片从 javascript 发送到 php

标签 javascript php ajax

我正在尝试使用 ajax 将照片从 javascript 发送到 php。 我在 html 中有这个输入:

<input type="file" class="input-field" id="photo" name="photo">

JavaScript 中的这个:

var photo = document.getElementById("photo").value;

这是在 php 中:

$photo_location = $_FILES['photo']['tmp_name'];

我正在使用 ajax post 在 php 中发送照片和一些其他数据。除了照片之外,所有其他数据都在 php 中正确接收。 getelementbyid .value 方法是否会导致照片错误?我从 php 收到错误未定义索引照片。

xmlhttp.open("POST", "ajaxpost.php");
    xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

    var payload = "name=" + name + "&price=" + price + "&quantity=" + quantity + "&description=" + description + "&photo=" + photo;
    payload = payload.replace("%20", "+");
    payload = payload.replace("%3D", "=");

    xmlhttp.send( payload );

    return false;

最佳答案

错误是您将文​​件作为普通输入发送,因此 php 会在 $_POST 而不是 $_FILES 中接收它。

你可以使用 FormData 来做到这一点,如下所示:

var photo = document.getElementById("photo");

var data=new FormData();
//from inputs
data.append(photo.name,photo.files[0]);
data.append('name',name);
data.append('price',price);
data.append('quantity',quantity);
data.append('description',description);

var xmlhttp=new XMLHttpRequest()
xmlhttp.open("POST", "ajaxpost.php");
xmlhttp.send(data);

关于javascript - 将照片从 javascript 发送到 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29477906/

相关文章:

javascript - 如何在 Javascript 中的这种情况后添加更多类?

php - 在 PHP 中将十六进制代码转换为可读字符串

PHP Soap Header 帮助

javascript - 更新页面内容 cURL 和 ajax,无需刷新页面

javascript - 尝试使用 ajax 将数据发送到 OOP 类

javascript - 将谷歌位置自动完成功能添加到列表项中新生成的输入中

javascript - 每个元素的随机颜色

javascript - 专门针对 PureComponent 的 shouldComponentUpdate

php - 使用 IBM Bluemix 进行 Laravel 数据库迁移

javascript - Ajax 将值添加到 JSON 以每秒绘制图形