我有一个表单,用户可以填写多个输入字段,也可以上传图像。我最近添加了另一个输入字段,用户可以在其中上传其他图像。
<label for="photo">Facility Roof Plan:</label>
<input type="file" id="facilityroofplan" name="facilityroofplan" />
当用户提交表单时,它应该上传此图像,并将目录路径存储到数据库中。信息正在保存到我的数据库中,没有任何问题,但是当我检查图像是否上传时,它不在那里。
$directoryPath = "../images/" . $selectedAssocAccount . "/" . $facilityID;
//create the directory
mkdir($directoryPath, 0775);
//facility roof plan
if(!empty($_FILES["facilityroofplan"]["name"])){
//directory path for the facility photo to reside in
$facilityRoofPlan = "../images/". $selectedAssocAccount ."/" . $facilityID . "/" . basename($_FILES["facilityroofplan"]["name"]);
if($_FILES['facilityroofplan']['error'] == UPLOAD_ERR_OK) {
$status_msg = '';
$from = $_FILES["facilityroofplan"]["tmp_name"];
$saved = save_facility_roof_plan($from, $facilityPhoto, $status_msg);
} else{
echo "Error uploading facility image.";
}
//insert into photo table
$photoQuery = "INSERT INTO facility_roof_plan (facility_id, roof_plan) VALUES ('$facilityID', '$facilityRoofPlan')";
mysqli_query($dbc, $photoQuery)or die(mysqli_error($dbc));
}
这就是我的save_facility_roof_plan
函数的样子:
function save_facility_roof_plan($from, $to, $status_msg) {
// Check if file already exists
if (file_exists($to)) {
$status_msg = "Sorry, facility photo already exists.";
return false;
}
if (move_uploaded_file($from, $to)) {
$status_msg = "The file ".basename($to)." has been uploaded.";
return true;
}
$status_msg = "Sorry, there was an error uploading a photo.";
return false;
}
我已在其他几个地方完成此操作,上传任何图片都没有问题。
我在哪里错了?
答案 0 :(得分:2)
在您的代码中,您有
行$saved = save_facility_roof_plan($from, $facilityPhoto, $status_msg);
但是您发布的内容中没有任何变量$facilityPhoto
。我的猜测是,应该更改为$facilityRoofPlan
,因为您设置了该路径但从未使用过它。
然后永远不会检查$saved
变量的错误,这些错误可能会告诉您它为什么不起作用。
尝试:
$facilityRoofPlan = "../images/". $selectedAssocAccount ."/" . $facilityID . "/" . basename($_FILES["facilityroofplan"]["name"]);
if($_FILES['facilityroofplan']['error'] == UPLOAD_ERR_OK) {
$status_msg = '';
$from = $_FILES["facilityroofplan"]["tmp_name"];
$saved = save_facility_roof_plan($from, $facilityRoofPlan, $status_msg);
if (!$saved) {
echo "Error saving roof plan image: {$status_msg}";
}
} else{
echo "Error uploading facility image.";
}