Использование PHP для загрузки изображения и сохранения данных в MSSQL - PullRequest
1 голос
/ 09 октября 2009

Я пытаюсь загрузить изображение, а также добавить такие детали, как; заголовок, описание и путь к файлу в таблицу базы данных.

Я использую следующий код, но он не добавляет никаких данных в базу данных;

(файл 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>

Мне было интересно, может кто-нибудь сказать мне, что может быть не так?

Спасибо.

Ответы [ 3 ]

1 голос
/ 09 октября 2009

можно ли записать «представленные / изображения /»? также вы можете запустить is_uploaded_file () для дополнительного уровня безопасности.

Также ваш запрос кажется неправильным

"INSERT INTO $user_pictures ( file ) VALUES ('$filePath')"

$ user_pictures должен быть таблицей

попробуй

"INSERT INTO `user_pictures` ( `file` ) VALUES ('$filePath')"
1 голос
/ 09 октября 2009

Этот код не работает из-за нескольких проблем.

Во-первых, вы должны переименовать одно из полей html или изменить имя поля при проверке загрузки:

<input type="submit" name="Upload" value="Upload" class="button" />

или

if(isset($_POST['submit']))

Во-вторых, этот скрипт не будет хранить данные в БД. Вы должны получить, очистить и записать данные в соответствующие поля, например:

$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')";

Вы должны убедиться, что эти поля присутствуют в БД, если нет - вы должны создать их:

ALTER table user_pictures ADD column description text, add column title varchar(255);
1 голос
/ 09 октября 2009

У вас есть ошибка в этой строке if(isset($_POST['Upload']))

Измените это на if(isset($_POST['submit']))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...