我正在尝试上传图片以及添加详细信息,例如;标题,描述和文件路径到数据库表中。
我正在使用以下代码,但它没有向数据库添加任何数据;
(session.php包含数据库连接。)
<?php include('includes/session.php');
$uploadDir = 'submitted/pictures/';
if(isset($_POST['submit']))
{
$fileName = $_FILES['file']['name'];
$tmpName = $_FILES['file']['tmp_name'];
$fileSize = $_FILES['file']['size'];
$fileType = $_FILES['file']['type'];
$filePath = $uploadDir . $fileName;
$result = move_uploaded_file($tmpName, $filePath);
if (!$result) {
echo "Error uploading <strong>file</strong>";
exit;
}
if(!get_magic_quotes_gpc())
{
$fileName = addslashes($fileName);
$filePath = addslashes($filePath);
}
$title = $_POST['title'];
$description = $_POST['description'];
$query = "INSERT INTO $user_pictures (file, title, description) VALUES ('$filePath', '$title', '$description')";
mssql_query($query);
}
?>
表单代码;
<form name="Image" enctype="multipart/form-data" action="upload-pics2.php" method="POST">
Title <input type="text" name="title" maxlength="100" class="textbox" value="<?php echo $form->value("title"); ?>" />
Description <textarea name="description" rows="8" cols="40" class="textbox" value="<?php echo $form->value("description"); ?>"></textarea>
File <input type="file" name="file" accept="image/gif, image/jpeg, image/x-ms-bmp, image/x-png" size="26" class="textbox" />
<input type="submit" name="submit" value="Upload" class="button" />
</form>
我想知道是否有人能告诉我可能出现的问题?
谢谢。
答案 0 :(得分:1)
此行if(isset($_POST['Upload']))
将其更改为if(isset($_POST['submit']))
答案 1 :(得分:1)
是'提交/图片/'可写吗?您也可能希望运行is_uploaded_file()以获得额外的安全层。
此外,您的查询似乎有误
"INSERT INTO $user_pictures ( file ) VALUES ('$filePath')"
$ user_pictures需要是一个表
尝试
"INSERT INTO `user_pictures` ( `file` ) VALUES ('$filePath')"
答案 2 :(得分:1)
由于存在一些问题,此代码无效。
首先,您应该在检查上传时重命名其中一个html字段或更改字段名称:
<input type="submit" name="Upload" value="Upload" class="button" />
或
if(isset($_POST['submit']))
第二个,此脚本不会将任何数据存储到DB中。 您应该获取,清理数据并将数据写入相应的字段,例如:
$title = mysql_real_escape_string($_POST['title']);
$description = mysql_real_escape_string($_POST['description']);
$query = "INSERT INTO $user_pictures (file, title, description) VALUES ('$filePath', '$title', '$description')";
你应该确保这些字段存在于DB中,如果不存在 - 你应该创建它们:
ALTER table user_pictures ADD column description text, add column title varchar(255);