通常我会为此简化我的代码,或者只显示给我带来麻烦的部分。但在这种情况下,我不知道出了什么问题,所以我把整个东西都贴进去了。对不起。
好的,下面的脚本获取 ajax 发送的值并将它们上传到 sql 数据库中。之后,它将图像从一个文件夹移动到另一个文件夹。
除了“move_uploaded_file”位之外,整个脚本工作正常,完成了它应该做的事情。所以它正确地执行了 sql 部分,并且所有会话名称、字符串编辑等......都是正确的。
我已经回显了脚本生成的文件的名称,它们是正确的。文件夹也可以读+写。等待移动的文件存在于文件夹中。
我错过了什么?为什么 move_uploaded_file 不起作用?提前谢谢大家。
--将 move_uploaded_file() 更改为 rename(),仍然无法正常工作--
<?php
session_start();
unset($_SESSION['reference']);
$name = $_GET['name'];
$category = $_GET['category'];
$subCategory = $_GET['subCategory'];
$date = $_GET['date'];
$address = $_GET['address'];
$city = $_GET['city'];
$state = $_GET['state'];
$host = $_GET['host'];
$info = $_GET['info'];
$adder = $_SESSION['user'];
//turn into array
$array = array();
$array[0]=$name;
$array[1]=$category;
$array[2]=$subCategory;
$array[3]=$date;
$array[4]=$address;
$array[5]=$city;
$array[6]=$state;
$array[7]=$host;
$array[9]=$info;
$array[11]=$adder;
try {
$con = new PDO('mysql:host=localhost;dbname=test');
//$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$refid=$con->prepare(" SELECT MAX(id) FROM createX ");
$refid->execute();
$id = $refid->fetchColumn();
$id=$id+1;
$newDate = str_replace('-', '', $date);
$reference = $id.$newDate;
$array[10]=$reference;
$array[8] = $_SESSION['imagePath'].$reference.'.'.$_SESSION['imageExt'];
$insert = $con->prepare(" INSERT INTO createX
(name,category,subCategory,date,address,city,state,host,imagePath,info,ref,adder)
VALUES (?,?,?,?,?,?,?,?,?,?,?,?) ");
$insert->execute($array);
rename( '../tempUploads/'.$_SESSION['imagePath'].$_SESSION['imageExt'] ,
'../uploads/'.$_SESSION['imagePath'].$reference.'.'.$_SESSION['imageExt'] );
}
catch(PDOException $e) { //try
echo 'error';
//echo 'ERROR: ' . $e->getMessage();
}
$_SESSION['reference'] = $reference;
unset($array);
session_write_close();
?>