javascript - 如何通过 Ajax 传递多个变量?[Javascript 对象]
问题描述
我正在使用 ajax/php 加载文件,但我不明白如何在 ajax 函数中添加除文件之外的其他变量。
HTML:
<html>
<body>
Select image to upload:
<input type="file" name="fileToUpload" id="fileToUpload">
<button onclick="loadNewPicture('tomato')" id="upload">Upload</button>
</body>
</html>
JAVASCRIPT:
function loadNewPicture(vegetable)
{
var file_data = $('#fileToUpload').prop('files')[0];
var form_data = new FormData();
form_data.append('file', file_data);
$.ajax(
{
url: 'TEST.php',
dataType: 'text',
cache: false,
contentType: false,
processData: false,
data: form_data + '&vegetable =' + vegetable ,
type: 'post',
});
}
PHP:
<?php
if ( 0 < $_FILES['file']['error'] )
{
echo 'Error: ' . $_FILES['file']['error'] . '<br>';
}
else
{
$vegetable = ($_POST["vegetable"]);
move_uploaded_file($_FILES['file']['tmp_name'], 'image/test/' . $_FILES['file']['name']);
}
?>
当然,说“未定义的索引:文件”是行不通的。知道我该怎么做吗?
解决方案
当然,说“未定义的索引:文件”是行不通的。知道我该怎么做吗?
这是因为在您的代码名称中input[type='file']
是fileToUpload。
因此,将您的 PHP 代码更改为
<?php
if ( 0 < $_FILES['fileToUpload']['error'] )
{
echo 'Error: ' . $_FILES['fileToUpload']['error'] . '<br>';
}
else
{
$vegetable = ($_POST["vegetable"]);
move_uploaded_file($_FILES['fileToUpload']['tmp_name'], 'image/test/' . $_FILES['fileToUpload']['name']);
}
?>
推荐阅读
- python - 如何每隔n个项目拆分一个列表
- c# - 如何使用 linq 过滤列表以获取子列表?
- r - R:如何在数据框中创建一个新列,其中主要计算观察值对变量具有相同值的次数
- sql-server - 无法将 Access 连接到 SQL Server 链接表 - 登录时出现错误消息
- javascript - 发送请求后返回的 XMLHttpRequest GET 函数。需要弄清楚如何获得等待响应的功能
- node.js - 多个请求完成后如何返回一个对象
- r - 有没有办法从使用 R 的大样本蒙特卡罗模拟中确定精确分数?
- c# - 如何在实体框架中添加仅由 Id 不同的实体(但让管理到 EF)?
- mysql - InnoDB:忽略空间 ID 为 26146 的数据文件“./catalog_category_product_index_store1.ibd”,因为重做日志引用
- python - 使用 Pycharm 执行不以关键字“test”开头的文件的 Pytest