У меня такая проблемка, сделал я каталог файлов и в админку добавил функцию загрузки файла по URL, проблема заключается в том что когда я задаю скрипту чет скачать то он качает но в БД добавляет не там где сохранил файл, а саму URL по которой качал… Как бы мне сделать замену чтоб добавляло адрес на закачанный файл??? Форма PHP: <form name='form1' method='post' enctype=\"multipart/form-data\" action='add_query_url.php'> <td height='40' class='txt12b'><font color='006699'>Название скрипта<br> <label> <input type='text' name='name' id='name'> </label> <p></font><br> Размер файла:<b>в БАЙТАХ</b><br> <label> <input type='text' name='file_size' id='file_size'> </label></p> <p><br> </p> </td> <td align='right'> <table border='0' cellpadding='0' cellspacing='4'> </table> </td> </tr> </table> <table width='100%%' border='0' cellpadding='0' cellspacing='0'> <tr bgcolor='006699'> <td height='1'><img src='img/e.gif' width='1' height='1'></td> </tr> </table> <table width='100%%' border='0' cellpadding='0' cellspacing='6'> <tr> <td><font class='txt8b'><font color='006699'>Требования:</font></font><br> <label><input type='text' name='treb' id='treb'> </label><br> <input type="hidden" name="op" value="sendform"> Введите URL файла который собираетесь скачать<br> <input type="text" name="file_url" size="100"><br> <p><span lang='ru'>Версия файла<br> <label> <input type='text' name='ver_file' id='ver_file'> </label></span></p> <p><span lang='en-us'>TITLE </span>текст страницы<br> <label><input type='text' name='title' id='title'> </label></p> <p>Ключевые слова<br> <label><input type='text' name='meta_k' id='meta_k'> </label></p> <p><span lang='ru'>Дескрипшен страницы<br> <label> <input type='text' name='meta_d' id='meta_d'> </label></span></p> <select name='cid'> <!-- Получаем все категории--> <p></span></p> </td> </tr> <tr> <td> <p><label>Краткое описание<br> <textarea name='lite_desc' id='lite_desc' cols='40' rows='20'></textarea> </label></p> <p><label>Полное описание<br> <textarea name='descr' id='descr' cols='40' rows='20'></textarea> </label></p> </td> </tr> <tr> <td> <table border='0' cellpadding='0' cellspacing='2'> <tr> <td align='left'>Разработчик: </td> <td><label> <input type='text' name='page' id='page'> </label></td> </tr> <tr> <td align='left'>Дата добавления: </td> <td><label> <input type='text' name='date' id='date'> </label></td> </tr> </table> <p><label> <input type='submit' name='submit' id='submit' value='Сохранить изменения'> </label></p> </form> Обработчик PHP: <? /* Функция загрузки файлов */ function sendform($file_url, $file_url1) { global $module_name; $fn = $file_url; $handle = fopen ($fn, 'rb'); $contents = ""; if(!$handle) echo 'Не могу открыть исходный файл'; else { while(!feof($handle)) { $data = fread($handle, 8192); $contents .= $data; } fclose ($handle); if ($file_url1=="") $file_url1 = "../files/"; $handle = fopen ($file_url1 . basename($fn), 'wb'); if(!$handle) echo '<b>Не могу создать записать файл</b>'; else { fwrite($handle, $contents); fclose($handle); echo '<b>Передача завершена</b>'; } } print "<br><p><a href=file_get_cat_add.php>Добавить ЕЩЕ</a></p>"; } switch($op) { case "sendform": sendform($file_url,$file_url1); break; default: MainForm(); break; } /* Если существует в глобальном массиве $_POST['title'] опр. ячейка, то мы создаем простую переменную из неё. Если переменная пустая, то уничтожаем переменную. */ if (isset($_POST['name'])) { $name = $_POST['name']; if ($name == '') { unset($name); } } /* if (isset($_POST['name'])) {$name = $_POST['name']; if ($name == '') {unset($name);}}*/ if (isset($_POST['file_size'])) {$file_size = $_POST['file_size']; if ($file_size == '') {unset($file_size);}} if (isset($_POST['treb'])) {$treb = $_POST['treb']; if ($treb == '') {unset($treb);}} if (isset($_POST['file_url'])) {$file_url = $_POST['file_url']; if ($file_url == '') {unset($file_url);}} if (isset($_POST['ver_file'])) {$ver_file = $_POST['ver_file']; if ($ver_file == '') {unset($ver_file);}} if (isset($_POST['title'])) {$title = $_POST['title']; if ($title == '') {unset($title);}} if (isset($_POST['meta_k'])) {$meta_k = $_POST['meta_k']; if ($meta_k == '') {unset($meta_k);}} if (isset($_POST['meta_d'])) {$meta_d = $_POST['meta_d']; if ($meta_d == '') {unset($meta_d);}} if (isset($_POST['cid'])) {$cid = $_POST['cid']; if ($cid == '') {unset($cid);}} if (isset($_POST['lite_desc'])) {$lite_desc = $_POST['lite_desc']; if ($lite_desc == '') {unset($lite_desc);}} if (isset($_POST['descr'])) {$descr = $_POST['descr']; if ($descr == '') {unset($descr);}} if (isset($_POST['page'])) {$page = $_POST['page']; if ($page == '') {unset($page);}} if (isset($_POST['date'])) {$date = $_POST['date']; if ($date == '') {unset($date);}} if (isset($name) && isset($file_size) && isset($treb) && isset($file_url) && isset($ver_file) && isset($title) && isset($meta_k) && isset($meta_d) && isset($cid) && isset($lite_desc)&& isset($descr) && isset($page)&& isset($date)) { /* Здесь пишем что можно заносить информацию в базу */ $result = mysql_query ("INSERT INTO files (name,file_size,treb,file_url,ver_file,title,meta_k,meta_d,cid,lite_desc,descr,page,date) VALUES('$name', '$file_size','$treb', '$file_url', '$ver_file', '$title', '$meta_k', '$meta_d', '$cid', '$lite_desc', '$descr', '$page', '$date')"); if ($result == 'true') {echo "<p>Данные успешно добавлены в БД</p>";} else {echo "<p>Не могу добавить... смотри логи сервера!</p>";} } else { echo "<p>Вы ввели не всю информацию, заполните все поля.</p>"; } ?>
dobs Нет, ну не первый день на форуме ведь. Вопрос автору: кто будет вникать в 306 строк плохо структурированного кода? Лично не я. Хотя один совет может дать мой шаман: почитайте документацию по файлу move_uploaded_file(), возможно многое прояснится.
dobs Держите в курсе, и больше не кидайте такие куски кода. Конечно, код нужен, но неужто Вы не можете выделить блок отвечающий за сохранение загруженного файла на диск и записи информации в базу данных? Пробуйте, уделите самому вопросу немного времени, и, уверен, Вы получите нужную подсказку
жесть А где используется переменная $_FILES? Еще раз, открываем мануал, ищем раздел "Загрузка файлов на сервер", ищем описание функции move_uploaded_file() и отписываемся здесь по результатам: что прояснилось, в чем затруднения.
Да у меня то качает файл просто в базу заносится не ссылка на файл который закачан ссылка на URL по которой качали... Мне надо сделать как то замену но как…??? П.С. Читал мануал – вроде не то…
dobs значит читать мануал... где конкретно уже ткнул. Там написано лучше чем сформулировал бы я. Есть примеры. Делайте по образу и подобию. Вчитывайтесь! Там по вашей теме написано! еще раз
http://ua.php.net/manual/ru/features.file-upload.php Если там нет упоминания про basename - забаньте меня. да...