Я работаю над сайтом здесь. На части сайта администратор сможет загрузить изображение, которое будет храниться на сервере, а также сделать запись в базе данных с указанием местоположения и времени его загрузки.
Я работаю локально, но использую WAMP в качестве тестового сервера. Если я вручную запускаю localhost / includes / db.php (подключение к базе данных) в адресной строке, я вижу, что он подключен, когда я получаю сообщение «Подключено успешно».
<?php
try {
$dbname = "woody_tools";
$user = "site";
$pass = "site";
$host = "localhost";
# MySQL with PDO_MYSQL
$conn = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}
?>
Это элемент управления формы со страницы, которую я использую, где администратор выбирает и загружает картинку.
<form action="includes/saveimage.php" enctype="multipart/form-data" method="post">
<table style="border-collapse: collapse; font: 12px Tahoma;" border="1" cellspacing="5" cellpadding="5"> <!-- Table to upload products -->
<tbody>
<tr>
<td><input name="uploadedimage" type="file"></td>
</tr>
<tr>
<td><input name="Upload Now" type="submit" value="Upload Image"></td>
</tr>
</tbody>
</table> <!-- Table to upload products -->
</form>
</div>
</div>
И код для страницы php, которая должна обрабатывать загрузку изображения и обновление базы данных.
<?php
include("includes/db.php");
function GetImageExtension($imagetype)
{
if(empty($imagetype)) return false;
switch($imagetype)
{
case 'image/bmp': return '.bmp';
case 'image/gif': return '.gif';
case 'image/jpeg': return '.jpg';
case 'image/png': return '.png';
default: return false;
}
}
if (!empty($_FILES["uploadedimage"]["name"])) {
$file_name=$_FILES["uploadedimage"]["name"];
$temp_name=$_FILES["uploadedimage"]["tmp_name"];
$imgtype=$_FILES["uploadedimage"]["type"];
$ext= GetImageExtension($imgtype);
$imagename=$_FILES["uploadedimage"]["name"];
$target_path = "Product_Images/".$imagename;
if(move_uploaded_file($temp_name, $target_path)) {
$query_upload="INSERT into 'images_tbl' ('images_path','submission_date') VALUES
('".$target_path."','".date("Y-m-d")."')";
mysql_query($query_upload) or die("error in $query_upload == ----> ".mysql_error());
}else{
exit("Error While uploading image on the server");
}
}
?>
Когда я запускаю этот код, я могу выбрать картинку и нажать «загрузить», но здесь все идет не так. Я получаю следующую ошибку. Пожалуйста, укажите мне в правильном направлении.
Я знаю, что соединение с базой данных использует PDO, а saveimages.php — нет. Я позаимствовал этот скрипт из учебника, найденного Вот . Когда я заработал, я попытался перевести его на PDO. Поскольку я делаю все это, чтобы научить себя, я пытаюсь сделать маленькие шаги. Также я подтвердил, что данные не были добавлены в базу данных после их запуска.
Заранее спасибо!!!
Вы должны позвонить include("db.php");
вместо include("includes/db.php");
поскольку saveimage.php
находится в includes
каталог.
Вы также должны убедиться, что Product_Images
каталог находится в includes
каталог и ваш веб-сервер имеет разрешение на запись в этот каталог.
Всем спасибо. @Aedix Rhinedale все правильно понял. Я забыл; Также он дал мне несколько отличных альтернатив !!!