Все в моей базе данных заполняется, за исключением самого самого изображения. Я просматривал это в течение нескольких часов, и я не могу понять, почему я все еще получаю эти ошибки, когда я нажимаю submit. Хотя я получаю ошибки в другой информации; размер, тип, имя отображаются в моей базе данных. Пожалуйста помоги. Вот мой код.
<?php
ob_start();
?>
<?php
session_start();
if($_SESSION['nachos'] != "admin")
header("Location: index.php");
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Steven Eck - Portfolio Form</title>
<style type="text/css">
.auto-style1 {
font-family: "Courier New", Courier, monospace;
font-size: x-large;
font-weight: bold;
}
.auto-style2 {
font-family: "Courier New", Courier, monospace;
font-weight: bold;
font-size: medium;
}
.auto-style3 {
font-family: "Courier New", Courier, monospace;
font-size: small;
text-decoration: blink;
}
</style>
</head>
<body style="color: #00FF00; background-color: #000000">
<div id="contentWrapper">
<div id="mainContent">
<?php
//display form if user has not clicked submit
if (!('POST' == $_SERVER['REQUEST_METHOD']))
{
?>
<form enctype="multipart/form-data" action="portfolioForm.php" method="post">
<fieldset>
<legend class="auto-style1">Project Information</legend>
<p><label for="txtTitle"><span class="auto-style2">Title</span>:</label>
<input type="text" name="txtTitle" id="txtTitle" ></p>
<p><span class="auto-style2"><label for="txtShortDescription">Short Description:</label></span>
<input type="text" name="txtShortDescription" id="txtShortDescription" ></p>
<p><span class="auto-style2"><label for="txtLongDescription">Long Description:</label></span>
<input type="text" name="txtLongDescription"id="txtLongDescription" ></p>
<p>
<input type="file" name="imgPhoto" id="imgPhoto" ></p>
<button type="submit">Submit</button>
<br><br><span class="auto-style3"><a href="index.php">Admin
Login</a></span><br class="auto-style3"><span class="auto-style3">
<a href="portfolioForm.php">Portfolio Form</a></span><br class="auto-style3">
<span class="auto-style3">
<a href="http://www.stevesays.net/newsite.php">Main Site</a></span><br>
<br><br><br><br><br>
</fieldset>
</form>
<?php
}
//the user has submitted the form
else
{
echo "<form><fieldset><legend>Project Information</legend>";
$dbConnection = mysqli_connect("lo***host", "we***stu_st***ck1", "r******aster", "w******u_351");
if(mysqli_connect_errno()){
echo '<p style="color: red;"> Failed to connect to MySql!: ' .mysqli_connect_error() . '</p>';
}
else
echo 'connected';
$handle = fopen($_FILES['imgPhoto']['tmpName'], "r");
$image = fread($handle, filesize($_FILES['imgPhoto']['tmpName']));
fclose($handle);
$image = mysqli_real_escape_string($dbConnection, $image);
mysqli_query($dbConnection, "INSERT INTO portfolio (title, shortDescription, longDescription, image, imageName, imageType, imageSize) VALUES ('$_POST[txtTitle]', '$_POST[txtShortDescription]', '$_POST[txtLongDescription]', '$image', '" . $_FILES['imgPhoto']['name']. " ', ' " . $_FILES['imgPhoto']['type']. " ', '" . $_FILES['imgPhoto']['size']. "' )");
echo "<p style=\"text-align: center; font-size: 11px;\">Thanks for filling out form!</p>";
echo "</fieldset></form>" ;
}
?>
</div>
Это ошибки, которые я получаю. Хотя я все еще получаю данные для других полей, изображение настроено на blob, и оно никогда не загружает его.
Предупреждение: fopen() [function.fopen]: имя файла не может быть пустым в /home/wequpstu/public_html/admin/portfolioForm.php в строке 100
Предупреждение: fread() ожидает, что параметр 1 будет ресурсом, boolean указан в /home/wequpstu/public_html/admin/portfolioForm.php в строке 101
Предупреждение: fclose() ожидает, что параметр 1 будет ресурсом, boolean указан в /home/wequpstu/public_html/admin/portfolioForm.php в строке 102
Ошибка Typo tmpName
=> tmp_name
$handle = fopen($_FILES['imgPhoto']['tmp_name'], "r");
$image = fread($handle, filesize($_FILES['imgPhoto']['tmp_name']));
Ошибка довольно ясна: $ _FILES ['imgPhoto'] ['tmpName'] пуст в
$handle = fopen($_FILES['imgPhoto']['tmpName'], "r");