php - move_uploaded_file() 需要 2 个参数,3 个给定
问题描述
这段代码给了我错误
move_uploaded_file() 需要 2 个参数,3 个给定
if(isset($_POST["upload"])){
$target="images/".basename($_FILES['image']['name']);
$db=mysqli_connect("localhost","root","","photos");
$image=$_FILES['image']['name'];
$text=$_POST['text'];
$sql="INSERT INTO images(image,text) VALUES ('$image','$text')";
mysqli_query($db,$sql);
if(move_uploaded_file($_FILES['image'],['tmp_name'],$target)){
$msg="image upload successful";
}else{
$msg="there was a problem uploading the image";
}
}
解决方案
您的代码语法错误:
if(move_uploaded_file($_FILES['image'],['tmp_name'],$target)){
--^--
逗号是用来分隔参数的,所以move_uploaded_file
用3个参数调用,第2个是一个字符串元素的数组,“tmp_name”。您应该删除该逗号,因为它不需要索引数组。
另请注意,您永远不应该将用户输入直接放在 SQL 查询字符串中,这很危险。阅读有关 SQL 注入和 PHP 的 PDO 驱动程序的更多信息。
推荐阅读
- reactjs - 如何将 jest mockImplemention 用于默认导出模块?
- python - 如何删除列表中的最低元素?
- awk - 比较 awk 结果的数量不正确
- node.js - 如何在同一时间mongodb上处理来自同一产品集合的不同用户对同一productId的更新请求
- python - 有人可以对参数 var_smoothing 对 scikit 中的 GaussianNB 的作用给出一个很好的数学/统计解释吗?
- c# - 时间戳的实体框架核心问题?无法将实体插入数据库
- python - Python - 在 Pandas 数据框中计算非字母数字字符
- rust - 为什么 Vec::iter_mut 没有出现在 std::vec::Vec 的文档索引中?
- java - mongodb java过滤器问题与numberlong
- sql - 在 SEDE(Stack Exchange 数据资源管理器)中获取所有带有自我接受答案的帖子