|
|
|
| Форма загрузки
<form action="index1.php" method="post" name="form">
<p>Назание<br>
<input name="brand" type="text" size="40">
</p>
<p>Картинка<br>
<input name="img" type="file">
</p>
<p><input name="submit" type="submit" value="отправить"></p>
</form>
|
обработчик inde1.php
<?
$brand = $_POST['brand'];
$img = $_POST['img'];
if (!empty($brand) && !empty($img) && ($_FILES["img"]["tmp_name"] == "")) {
$result = mysql_query ("INSERT INTO brand (brand,img) VALUES ('$brand','$img')")or print 'Ошибка работы с БД: '.mysql_error();
move_uploaded_file($_FILES["img"]["tmp_name"], $_SERVER["DOCUMENT_ROOT"]."/img/");
if($result){
echo "<h3>Добавлено</h3>";
}
}
?>
|
| |
|
|
|
|
|
|
|
для: scva
(08.07.2009 в 12:07)
| | 1. Форма должна иметь атрибут enctype="multipart/form-data": <form action="index1.php" method="post" name="form" enctype="multipart/form-data">
2. Не будет передано на сервер такого: $_POST['img'], а будет $_FILES["img"][параметр].
3. Ваши дальнейшие действия ошибочны - а) не понятно что вы пишите в базу, так как $img у вас пуста будет, б) $_FILES["img"]["tmp_name"] - это временное имя загруженного файла на сервер, а вы его перемещаете в каталог (при чем не верно). Вы бы для примера вывели его на экран и посмотрели, что оно из себя представляет, прежде чем так его перемещать.
4. Ищите в разделе примеры загрузки файла на сервер, как это правильно (грамотно) делается. | |
|
|
|
|
|
|
|
для: scva
(08.07.2009 в 12:07)
| | http://ru.php.net/manual/ru/features.file-upload.php
после изучения материала можно попробовать ответить на вопросы:
а) зачем приведен файл inde1.php, в то время как файл обработчик запроса называется index1.php ?
б) почему переменная $img берется из масива $_POST[]?
в) где обеспечивается анализ элемента $_FILES["img"]["error"] до проведения которого лезть к другим элементам массива $_FILES["img"] бесполезно?
UPD.
Ну и таки да, как отметил sim5, атрибут enctype в форме должен быть прописан правильно. | |
|
|
|