我们有一个简单的文件上传页面可以工作,但不工作的是添加的输入。我们需要的输入,因为我们需要一些管理信息时,我们上传的文件,如一个名字,一些其他信息,如文件被发现的地方,等等。标记图像的输入工作正常。唯一的问题是,我们没有在数据库的表中获得任何条目,我们需要在其中存储图像名称,以便以后与我们的web应用程序一起使用。下面是我们的php代码
<?php
ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL);
$servername = 'localhost';
$db_username = 'masterchangedforpublicpost';
$db_pass = 'ChangedforPublicPost';
$dbname = 'ourdatabase';
// Other POST elements
$img_name = $_POST["img_name"];
$style_category = $_POST["style_category"];
$style_found = $_POST["style_found"];
$img_added = $_POST["img_added"];
$conn = new mysqli($servername, $db_username, $db_pass, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO Styles (img_name, style_category, style_found, img_added) VALUES ('$img_name', '$style_category', '$style_found', '$img_added');";
if (isset($_POST['submit'])) {
$file = $_FILES['file'];
$fileName = $_FILES['file']['name'];
$fileTmpName = $_FILES['file']['tmp_name'];
$fileSize = $_FILES['file']['size'];
$fileError = $_FILES['file']['error'];
$fileType = $_FILES['file']['type'];
$fileExt = explode('.', $fileName);
$fileActualExt = strtolower(end($fileExt));
$allowed = array('jpg', 'jpeg', 'png', 'gif');
if (in_array($fileActualExt, $allowed)) {
if ($fileError === 0) {
if ($fileSize < 200000000) {
$fileNameNew = uniqid('', true).".".$fileActualExt;
$fileDestination = $_SERVER['DOCUMENT_ROOT'].'/styleuploads/';
$moved = move_uploaded_file($fileTmpName, $fileDestination.$img_name.".".$fileNameNew);
header("Location: index.php?uploadyay");
exit;
} else echo "Opps, your file is too big! It needs to be smaller than 200 Megabytes";
} else {
echo "There was an error uploading your file";
}
} else {
echo "You can not upload files of that type";
}
}
?>
正如您所知,我们将连接和php放在上传php之前,首先处理数据输入,主要是因为我们需要首先将img\u名称添加到作用域中。
1条答案
按热度按时间t3irkdon1#
您已经创建了sql查询,但尚未执行。代码中缺少类似的内容:
您应该查看文档以获取更多信息—mysqli概述和示例
编辑:评论中已经提到了-请保护您的sql,不要在生产环境中使用这种代码。例如,请参阅pdostatement::bindparam,这是首选方法。