Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
5 / 5 / 5
Регистрация: 13.11.2014
Сообщений: 325
1

Загрузкой файла на сервер и вывести ссылку на них в бд

13.02.2015, 19:46. Показов 2593. Ответов 24
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток! Помогите, пожалуйста, загрузить несколько файлы на сервер и сделать ссылку в бд mysql.
Собственно код на php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?PHP header("Content-Type: text/html; charset=cp1251");?>
<?
include("connect.php");
/* Таблица MySQL, в которой будут храниться данные */
$table = "dolzhnostnye";
 
/* Создаем соединение */
mysql_connect(DB_HOST, DB_USER, DB_PASS) or die ("Не могу создать соединение");
 
/* Выбираем базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db(DB_NAME) or die (mysql_error());
 
$uploaddir = 'uploads';
if (move_uploaded_file($_FILES['pdf_doc']['tmp_name'], $uploaddir .
$_FILES['pdf_doc']['name']))
 {
    print "File is valid, and was successfully uploaded.";
} else {
    print "There some errors!";
}
 
/* Составляем запрос для вставки информации в таблицу
name...date - название конкретных полей в базе;
в $_POST["test_name"]... $_POST["test_mess"] - в этих переменных содержатся данные, полученные из формы */
 
$path = $uploaddir .$_FILES['pdf_doc']['name'];
 
$query = (sprintf ("INSERT INTO $table SET id_doc='".$_POST["id_doc"]."', type_doc='".$_POST["type_doc"]."', number_doc='".$_POST["number_doc"]."', data_doc='".$_POST["data_doc"]."', name_doc='".$_POST["name_doc"]."', original_or_copy_doc='".$_POST["original_or_copy_doc"]."', kol_exemp_doc='".$_POST["kol_exemp_doc"]."', pdf_doc='%s', word_doc='".$_POST["word_doc"]."', excel_doc='".$_POST["excel_doc"]."', dwg_doc='".$_POST["dwg_doc"]."', vhod_nomer_doc='".$_POST["vhod_nomer_doc"]."',
data_registr_doc='".$_POST["data_registr_doc"]."', FIO_doc='".$_POST["FIO_doc"]."'",mysql_real_escape_string($path)));
 
/* Выполняем запрос. Если произойдет ошибка - вывести ее. */
mysql_query($query) or die(mysql_error());
 
/* Закрываем соединение */
mysql_close();
 
/* В случае успешного сохранения выводим сообщение и ссылку возврата */
echo ("<div style=\"text-align: center; margin-top: 10px;\">
<font color=\"green\">Данные успешно сохранены!</font><br/>
<a href=\"view_dolzh.php\">Посмотреть сохраненные данные </a><br/>
 
<a href=\"EditDolzh.php\">Вернуться назад</a></div>");
 
?>
и код формы
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<html>
 <head>
     <meta http-equiv="Content-Type" content="text/html; charset=cp1251" />
     <title></title>
 </head>
 
<body>
<table class="text">
<form action="inst_dol.php" method="post" name="inst_dol">
 
<td class="leftcol"><input type="submit" class="buttons" value="Назад" /></td>
 
</form>
 
 
<form action="save_dolzh.php" method="post" name="dolzh_form" enctype="multipart/form-data">
 
 
<table border="1" cellpadding="0" cellspacing="0">
 <tr>
  <td colspan="2" align="center"><strong>Добавить данные</strong></td>
 </tr>
 <tr>
  <td width="150"><label></label></td>
  <td><input type="text" name="id_doc" maxlength="30" /></td>
 </tr>
 <tr>
  <td width="150">Тип документа :</td>
  <td><input type="text" name="type_doc" maxlength="30" /></td>
 </tr>
 <tr>
  <td width="150">№ документа (полностью) :</td>
  <td><input type="text" name="number_doc" maxlength="30" /></td>
 </tr>
  <tr>
  <td width="150">Дата утверждения документа :</td>
  <td><input type="date" name="data_doc" maxlength="30" /></td>
 </tr>
 <tr>
  <td width="150">Наименование документа:</td>
  <td><textarea  type="text" name="name_doc" maxlength="85" /></textarea></td>
 </tr>
 <tr>
  <td width="150">оригинал/копия :</td>
  <td><input type="text" name="original_or_copy_doc" maxlength="30" /></td>
 </tr>
 <tr>
  <td width="150">Количество листов :</td>
  <td><input type="text" name="page_doc" maxlength="30" /></td>
 </tr>
 <tr>
  <td width="150">Количество экземпляра :</td>
  <td><input type="text" name="kol_exemp_doc" maxlength="30" /></td>
 </tr>
  <tr>
  <td width="150">Наличие документа в формате (.pdf) :</td>
  <td><input type="file" name="pdf_doc"  /></td>
 </tr>
  <tr>
  <td width="150">Наличие документа в формате  (.doc) :</td>
  <td><input type="file" name="word_doc"  /></td>
 </tr>
  <tr>
  <td width="150">Наличие документа в формате (.xls) :</td>
  <td><input type="file" name="excel_doc"/></td>
  <tr>
  <td width="150">Наличие документа в формате  (.dwg) :</td>
  <td><input type="file" name="dwg_doc"  /></td>
 </tr>
<tr>
  <td width="150">Входящий номер документа :</td>
  <td><input type="text" name="vhod_nomer_doc" maxlength="30" /></td>
 </tr>
 <tr>
  <td width="150">Дата регистрации :</td>
  <td><input type="date" name="data_registr_doc" maxlength="30" /></td>
 </tr>
 <tr>
  <td width="150">ФИО сдавшего документ:</td>
  <td><input type="text" name="FIO_doc" maxlength="85" /></td>
 </tr>
 <tr>
  <td colspan="2" align="center">
   <input type="submit" class="buttons" value="Добавить" />
   <input type="reset" class="buttons" value="Очистить" />
  </td>
 </tr>
</table>
</form>
 
</body>
</html>
Эти PDF_DOC, WORD_DOC, EXCEL_DOC, DWG_DOC должны загружаться на сервер (в папку uploads) и нужно вывести ссылки на бд .

Благодарю за помощь!

Добавлено через 6 часов 40 минут
Неужели никто не знает...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.02.2015, 19:46
Ответы с готовыми решениями:

Проблемы с загрузкой файла на сервер.
Добрый день. Будьте добры, помогите, пожалуйста. Необходимо загрузить файл на сервер. Для этого...

Ошибка с загрузкой(копированием) файла на локальном сервер
Доброго времени суток, читатель. Пытался сделать загрузчик файла(изображения) с клиентской(ajax)...

Очень странная ситуация с загрузкой файла на сервер!
такая ситуация, сделал форму загрузки файла: &lt;form action=&quot;upload_file.php&quot;...

как в php разместить ссылку на скачивание файла, который был загружен на сервер?
есть страница с формой, через которую файл загружается на сервер, часть кода: &lt;form...

24
5 / 5 / 5
Регистрация: 13.11.2014
Сообщений: 325
16.02.2015, 21:22  [ТС] 21
Author24 — интернет-сервис помощи студентам
да в папку uploads не загрузились во время обновление.
0
171 / 153 / 67
Регистрация: 11.02.2015
Сообщений: 450
16.02.2015, 22:49 22
Но они и не должны были, потому что в функции update_item() нет кода, отвечающего за сохранение файлов. Его нужно туда добавить:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
function update_item(){
    $uploaddir='uploads/';
    $upload_types=array('pdf_doc','word_doc','excel_doc','dwg_doc');
    
    foreach($upload_types as $upload_type){
        if($_FILES[$upload_type]['size']){
            $file_name=iconv("UTF-8","WINDOWS-1251",$_FILES[$upload_type]['name']);
            move_uploaded_file($_FILES[$upload_type]['tmp_name'],$uploaddir.$file_name);
        }
    }
 
    $id_doc=mysql_escape_string($_POST['id_doc']); 
    $type_doc=mysql_escape_string($_POST['type_doc']); 
    $number_doc=mysql_escape_string($_POST['number_doc']); 
    $data_doc=mysql_escape_string($_POST['data_doc']); 
    $name_doc=mysql_escape_string($_POST['name_doc']);
    $original_or_copy_doc=mysql_escape_string($_POST['original_or_copy_doc']); 
    $page_doc=mysql_escape_string($_POST['page_doc']); 
    $kol_exemp_doc=mysql_escape_string($_POST['kol_exemp_doc']); 
    $pdf_doc=mysql_escape_string($_FILES['pdf_doc']['name']); 
    $word_doc=mysql_escape_string($_FILES['word_doc']['name']);
    $excel_doc=mysql_escape_string($_FILES['excel_doc']['name']);
    $dwg_doc=mysql_escape_string($_FILES['dwg_doc']['name']);
    $vhod_nomer_doc=mysql_escape_string($_POST['vhod_nomer_doc']); 
    $data_registr_doc=mysql_escape_string($_POST['data_registr_doc']);
    $FIO_doc=mysql_escape_string($_POST['FIO_doc']);
    $next_test_doc=mysql_escape_string($_POST['next_test_doc']);
    $prediduw_test_doc=mysql_escape_string($_POST['prediduw_test_doc']); 
    $izmen_kol_doc_1=mysql_escape_string($_POST['izmen_kol_doc_1']);
    $izmen_kol_doc_2=mysql_escape_string($_POST['izmen_kol_doc_2']);
    $izmen_kol_doc_3=mysql_escape_string($_POST['izmen_kol_doc_3']);
    $izmen_kol_doc_4=mysql_escape_string($_POST['izmen_kol_doc_4']);
    $izvew_ob_izmen_doc=mysql_escape_string($_POST['izvew_ob_izmen_doc']);
     
    $query="
        UPDATE tehnologicheskie SET  
            type_doc='".$type_doc."' , 
            number_doc='".$number_doc."', 
            data_doc='".$data_doc."', 
            name_doc='".$name_doc."', 
            original_or_copy_doc='".$original_or_copy_doc."' , 
            page_doc='".$page_doc."', 
            kol_exemp_doc='".$kol_exemp_doc."', 
            pdf_doc='".$pdf_doc."', 
            word_doc='".$word_doc."', 
            excel_doc='".$excel_doc."', 
            dwg_doc='".$dwg_doc."', 
            vhod_nomer_doc='".$vhod_nomer_doc."', 
            data_registr_doc='".$data_registr_doc."', 
            FIO_doc='".$FIO_doc."', 
            next_test_doc='".$next_test_doc."', 
            prediduw_test_doc='".$prediduw_test_doc."', 
            izmen_kol_doc_1='".$izmen_kol_doc_1."', 
            izmen_kol_doc_2='".$izmen_kol_doc_2."', 
            izmen_kol_doc_3='".$izmen_kol_doc_3."' , 
            izmen_kol_doc_4='".$izmen_kol_doc_4."', 
            izvew_ob_izmen_doc='".$izvew_ob_izmen_doc."' 
        WHERE id_doc=".$_GET['id_doc'];
        
    mysql_query ($query); 
    header('Location: '.$_SERVER['PHP_SELF']);
    die();
}
1
5 / 5 / 5
Регистрация: 13.11.2014
Сообщений: 325
17.02.2015, 09:25  [ТС] 23
nrobert, спасибо, за Ваши ответы!

Обновление все равно не происходит. Та же проблема.
0
171 / 153 / 67
Регистрация: 11.02.2015
Сообщений: 450
17.02.2015, 10:12 24
Не могу ничего конкретного сказать, у меня нет полной картинки, что у вас там делается.
Что я вижу:
1. форму, которая успешно добавляет файлы,
2. функцию, которая обновляет БД и должна была обновлять файлы, но этого не делает.
Какие выводы я могу сделать:
1. где-то косяк в совместной работе вышеперечисленных механизма,
2. а зачем нужна функция обновления, если она делает то же самое? Ведь по сути - при обновлении файлов старые стираются и добавляются новые с такими же названиями.
В общем, вы сами разберетесь.
1
5 / 5 / 5
Регистрация: 13.11.2014
Сообщений: 325
17.02.2015, 13:49  [ТС] 25
nrobert, Благодарю за помощь! Все решилось.
0
17.02.2015, 13:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.02.2015, 13:49
Помогаю со студенческими работами здесь

Проблемы с загрузкой файлов на сервер
Имеется простенький jsp для выбора файла и отправки данных о нём &lt;%@page contentType=&quot;text/html&quot;...

Проблемы с загрузкой файлов на сервер.
Немогу загрузить файл на сервер. Помогите. Вот скрипт и ошибка: copy($_FILES,$loc); ...

Проблема с загрузкой файлов на сервер
День добрый, в очередной раз с повпросом... Такой кусок кода: if($_FILES!=''){ ...

Помогите с загрузкой фото на сервер(с формы)
Помогите с загрузкой фото на сервер(с формы). Если можно, с комментарием Спасибо

Проблемы с загрузкой docx и doc файлов на сервер
Доброго времени суток, у меня есть php обработчик кнопки для загрузки файлов на сервер. Однако в...

Сканер отпечатков пальцев автономный с загрузкой на сервер
Помогите сделать такую вещь, Сканер отпечатков пальцев автономный с загрузкой сканов на сервер и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru