|
|
|
| Через форму сохраняю в папку фаил. Хочу в базу данных сохранять файл, чтоб потом выводить вместе остальной информацией в браузер , например фото пользователя вместе с остальной инфой о нем.
Вот код, фаил сохраняю в папку а вот с загрузкой имени в базу данных проблемы
<?php
include ('connect.php');
if (isset($_POST["send"])) {
$sql = mysql_query("INSERT INTO `kandidat` (`rezum_txt`, `fail`, `veb`, `data`)
VALUES ('".$_POST['rezum_txt']."','".$_FILES['name']."','".$_POST['veb']."', NOW())");
if ($sql) {
echo "<p>Данные успешно добавлены в таблицу.</p>";
} else {
echo "<p>Произошла ошибка.</p>";
}
}
//проверяем, если файл загружен и ошибок нет if ($_FILES['file']['error'] == 0)
if($_FILES['file']['error'] == 0){
//выбираем путь временного хранилища файла
$temp = $_FILES['file']['tmp_name'];
//выбираем путь, куда будем сохранять файл
$name_file = $_FILES['file']['name'];
//перемещаем файл из временной папки к нам на сервер
move_uploaded_file($temp, "fail/" .$name_file);
}
?>
<table>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post" enctype="multipart/form-data">
<tr>
<td>Резюме: </td>
<td><textarea rows="10" cols="95" name="rezum_txt" ></textarea></td>
</tr>
<tr>
<td>Ссылка на резюме в интернете:</td>
<td><input type="url" name="veb" size="70"></td>
</tr>
<tr>
<td>file:</td>
<td><input type="file" name="file" size="30"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name ="send" value="внести кандидата"></td>
</tr>
</form>
</table>
|
| |
|
|
|
|
|
|
|
для: davidoff_72
(16.05.2015 в 15:14)
| | !!!!
А вставляете в базу с каким именем? Вот так надо
$sql = mysql_query("INSERT INTO `kandidat` (`rezum_txt`, `fail`, `veb`, `data`)
VALUES ('".$_POST['rezum_txt']."','".$_FILES['file']['name']."','".$_POST['veb']."', NOW())");
|
| |
|
|
|
|
|
|
|
для: elenaki
(16.05.2015 в 16:00)
| | Спасибо. Как все просто оказалось. Вроде все нормально.
Но теперь другая проблема... подскажите как его открыть? Можно какую нибудь ссылку . Спасибо | |
|
|
|
|
|
|
|
для: elenaki
(16.05.2015 в 16:00)
| | " . basename($_FILES['file']['name']) . " | |
|
|
|
|
|
|
|
для: confirm
(16.05.2015 в 20:17)
| | Не осуждайте за криворукость, подскажите пожалуйста где нехватает знаний:
<?php
$sql = mysql_query('SELECT `ID`, `rezum_txt`, `veb`, `fail`, `data` FROM `kandidat` WHERE 1');
...
while ($result = mysql_fetch_array($sql)) {
...
echo "<td>".$result['fail'].basename($_FILES['fail']['name']) ."</td>
</tr>";
}
?>
|
в браузер выводится имя файла. Как сделать, чтоб имя было активным (или кнопка, ссылка) кликая по нему открывался бы файл? Спасибо. | |
|
|
|
|
|
|
|
для: davidoff_72
(16.05.2015 в 21:04)
| | <td>".$result['fail'].basename($_FILES['fail']['name']) ."</td> - это что такое? $_FILES['fail']['name'] - это имя файла в массиве $_FILES доступное только во время загрузки файла. В базу же надо писать не значение этого массива, а применяя к нему basename(), потому как еще не факт, что это имя, а подставить можно все, что угодно. $result['fail'] - и содержит это сохраненное имя. А чтобы скачивать и по прямой ссылке, это
<?
'<td><a href="путь_к_файлу">' . $result['fail'] . '</a></td></tr>';
|
| |
|
|
|
|
|
|
|
для: confirm
(17.05.2015 в 03:35)
| | Как всё просто! Спасибо
Вот как я это решил:
<?php
echo "<td><a href='fail/". $result[fail]."'>" .substr($result['fail'],0,10 ). "</a></td>";
?>
|
Но вот небольшая проблема. По роду деятельности мне необходимо сохранять файлы с именами на русском языке.
Сохрнаняя фаил на русском он в папку сохраняется с именем в виде кракозябры а потом не открывается из браузера.
Как сделать, чтоб сохранять файл с именем на русском языке и открывать потом из браузера?
Спасибо | |
|
|
|
|
|
|
|
для: davidoff_72
(19.05.2015 в 00:51)
| | Что за род деятельности где разрешены имена только на русском? Просветите. | |
|
|
|
|
|
|
|
для: KPETuH
(19.05.2015 в 10:52)
| | подбор персонала. кандидаты (пользователи) присылают свои резюме (вордовские файлы - .doc .docx .rtf .pdf) с именами файлов на русском языке. не хотелось бы каждый фаил переименовывать.
Если можете подскажите | |
|
|
|
|
|
|
|
для: davidoff_72
(19.05.2015 в 15:07)
| | Переименовывайте все файлы как вам угодно всего делов-то | |
|
|
|
|
|
|
|
для: davidoff_72
(19.05.2015 в 00:51)
| | используй это
//проверяем, если файл загружен и ошибок нет if ($_FILES['file']['error'] == 0)
if($_FILES['file']['error'] == 0){
//выбираем путь временного хранилища файла
$temp = $_FILES['file']['tmp_name'];
//выбираем путь, куда будем сохранять файл
$name_file = iconv("UTF-8", "WINDOWS-1251", $_FILES['file']['name']);
//перемещаем файл из временной папки к нам на сервер
move_uploaded_file($temp, "fail/" .$name_file);
}
|
| |
|
|
|
|
|
|
|
для: hars@bk.ru
(19.05.2015 в 14:13)
| | Спасибо. Всё работает.
Теперь у меня задача чтоб в цикле выводились фото клиентов вместе с остальной информацией. Если можете подскажите.
<?php
$sql = mysql_query('SELECT `ID`, `rezum_txt`, `veb`, `foto` FROM `kandidat` WHERE 1 ORDER BY data DESC');
...
while ($result = mysql_fetch_array($sql))
{
echo "<td>?????". $result[foto]." ???? </td>";
?>
|
| |
|
|
|
|
|
|
|
для: davidoff_72
(19.05.2015 в 15:35)
| | Ну собственно не вижу проблемы. Только не понятно, у вас в MySQL сами фотографии хранятся или их имена. | |
|
|
|
|
|
|
|
для: hars@bk.ru
(20.05.2015 в 09:58)
| | Спасибо. Уже решил проблему. Но у меня вопрос, как сделать , чтоб в столбец `photo` сохранялись только файлы с раширением: .jpg, .png и другие картинки?
Вот как это решил:
<?php
$sql = mysql_query('SELECT ... `photo`, .. FROM `kandidat` WHERE 1 ORDER BY data DESC');
while ($result = mysql_fetch_array($sql))
{
echo "<td>";
$photo = "<img src = 'fail/". $result[photo]."' height='100' width='70'/>";
switch($result['photo'] or NULL)
{
case 1:
echo $photo;
break;
case 2:
echo NULL;
break;
}
echo "</td>";
?>
|
| |
|
|
|
|
|
|
|
для: davidoff_72
(19.05.2015 в 00:51)
| | А как создать такую возможость: открыть фаил, отредактировать и сохранить на том же месте с тем же именем?
Спасибо | |
|
|
|
|
|
|
|
для: davidoff_72
(19.05.2015 в 19:50)
| | Читайте уже мануал http://php.net/manual/ru/function.fopen.php
$handle = fopen("C:\\inetpub\\wwwroot\\file_name.txt", "a+"); //'a+' Открывает файл для чтения и записи; помещает указатель в конец файла. Если файл не существует - пытается его создать.
fwrite( $handle, date("Y-m-d H:i:s").'; Запись
');
fclose($handle);
|
Список возможных режимов для fopen() используя mode
mode Описание
'r' Открывает файл только для чтения; помещает указатель в начало файла.
'r+' Открывает файл для чтения и записи; помещает указатель в начало файла.
'w' Открывает файл только для записи; помещает указатель в начало файла и обрезает файл до нулевой длины. Если файл не существует - пробует его создать.
'w+' Открывает файл для чтения и записи; помещает указатель в начало файла и обрезает файл до нулевой длины. Если файл не существует - пытается его создать.
'a' Открывает файл только для записи; помещает указатель в конец файла. Если файл не существует - пытается его создать.
'a+' Открывает файл для чтения и записи; помещает указатель в конец файла. Если файл не существует - пытается его создать.
'x' Создаёт и открывает только для записи; помещает указатель в начало файла. Если файл уже существует, вызов fopen() закончится неудачей, вернёт FALSE и выдаст ошибку уровня E_WARNING. Если файл не существует, попытается его создать. Это эквивалентно указанию флагов O_EXCL|O_CREAT для внутреннего системного вызова open(2).
'x+' Создаёт и открывает для чтения и записи; иначе имеет то же поведение что и'x'.
'c' Открывает файл только для записи. Если файл не существует, то он создается. Если же файл существует, то он не обрезается (в отличии от 'w'), и вызов к этой функции не вызывает ошибку (также как и в случае с 'x'). Указатель на файл будет установлен на начало файла. Это может быть полезно при желании заблокировать файл (смотри flock()) перед изменением, так как использование 'w' может обрезать файл еще до того как была получена блокировка (если вы желаете обрезать файл, можно использовать функцию ftruncate() после запроса на блокировку).
'c+' Открывает файл для чтения и записи; иначе имеет то же поведение, что и 'c'. | |
|
|
|
|
|
|
|
для: hars@bk.ru
(20.05.2015 в 09:56)
| | нет, что то пока не получается осознать... | |
|
|
|
|
|
|
|
для: confirm
(17.05.2015 в 03:35)
| | Имена файлов я сохраняю в mediumblob в mysql . Правильно ли это? | |
|
|
|
|
|
|
|
для: davidoff_72
(19.05.2015 в 23:57)
| | Это тип хранения бинарных данных - например файл.
Хранить там имя файла конечно тоже можно, но для этого есть тип varchar | |
|
|
|
|
|
|
|
для: hars@bk.ru
(20.05.2015 в 10:00)
| | Спасибо. поменял на varchar (255).
о у меня проблема, если я удаляю запись, то в бд удаляется а вот фаил в папке остается. Как сделать, чтоб вместе с удалением записи из бд удалялся ещё и фаил из папки?
Вот обработчик удаления:
<?php
include ('connect.php');
if (isset($_GET['del'])) {
$sql = mysql_query('DELETE FROM `kandidat` WHERE `ID` = "'.$_GET['del'].'"');
if ($sql) {
echo "<p>Кандидат удален.</p>";?>
<script language="JavaScript"> window.location.href = "http://localhost/proba/checkbox.php"</script>
<?php
} else {
echo "<p>Произошла ошибка.</p>";
}
}
?>
|
| |
|
|
|
|
|
|
|
для: davidoff_72
(20.05.2015 в 23:15)
| | почитайте уже мануал по работе с файлами в php | |
|
|
|
|
|
|
|
для: KPETuH
(21.05.2015 в 10:18)
| | читаю мануал каждый раз когда вижу незнакомое значение... к сожалению не понимаю язык мануала. не спрашивал бы есллиб понимал | |
|
|
|
|
|
|
|
для: davidoff_72
(30.05.2015 в 16:27)
| | Мануал на php.net отлично переведен на русский. | |
|
|
|
|
|
|
|
для: davidoff_72
(20.05.2015 в 23:15)
| | Опять даю ссылку на мануал.
На глупые вопросы больше не отвечу.
http://php.net/manual/ru/function.unlink.php | |
|
|
|
|
|
|
|
для: hars@bk.ru
(21.05.2015 в 10:27)
| | мануал у меня скачен. к сожелению не понимаю язык мануала. Не хотите помогать не помогайте. | |
|
|
|