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

Ошибка в uploadfiles

19.03.2015, 09:33. Показов 1575. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Помогите исправить ошибку при загрузки файлов на сервер.

Код обработчика.
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
<?PHP header("Content-Type: text/html; charset=utf8");?>
<?php
include("connect.php");
 
$table = "dolzhnostnye";
mysql_connect(DB_HOST, DB_USER, DB_PASS) or die ("Не могу создать соединение");
mysql_select_db(DB_NAME) or die (mysql_error());
 
$query='INSERT INTO dolzhnostnye SET  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"].'", page_doc="'.$_POST["page_doc"].'", kol_exemp_doc="'.$_POST["kol_exemp_doc"].'",';
 
$date = date('Y-m-d-h-i-s');
$newdir = mkdir("uploads/$date/");
$uploaddir = "uploads/$date/";
 
// $upload_types=array('pdf_doc[]','word_doc[]','excel_doc[]','dwg_doc[]'); //Каждого типа по несколько файлов
$upload_types=array('pdf_doc','word_doc','excel_doc','dwg_doc');
$message='';
 
foreach($upload_types as $upload_type){
    $file_name=iconv('UTF8', 'UTF8//TRANSLIT', $_FILES[$upload_type]['name']);
    if(move_uploaded_file($_FILES[$upload_type]['tmp_name'],$uploaddir.$file_name)){
        $path=mysql_real_escape_string($uploaddir);
        $query.=$upload_type.'="'.$path.'",';
        $message.=$file_name.' успешно загружен.<br/>';
    }elseif($_FILES[$upload_type]['size']!=0){
        $message.='Не удалось загрузить '.$file_name.'<br/>';
    }
}
 
 $date1 = date('Y-m-d-h-i-s');
$newdir1 = mkdir("files/$date1/");
$uploaddir1 = "files/$date1/";
 
 $upload_types1=array('izmen_kol_doc_1', 'izmen_kol_doc_2', 'izmen_kol_doc_3', 'izmen_kol_doc_4', 'izvew_ob_izmen_doc');
 
foreach($upload_types1 as $upload_type){
    $file_name=iconv('UTF8', 'UTF8//TRANSLIT', $_FILES[$upload_type]['name']);
    if(move_uploaded_file($_FILES[$upload_type]['tmp_name'],$uploaddir1.$file_name)){
        $path=mysql_real_escape_string($uploaddir1);
        $query.=$upload_type.'="'.$path.'",';
        $message.=$file_name.' успешно загружен.<br/>';
    }elseif($_FILES[$upload_type]['size']!=0){
        $message.='Не удалось загрузить '.$file_name.'<br/>';
    }
}
 
$query.='vhod_nomer_doc="'.$_POST["vhod_nomer_doc"].'", data_registr_doc="'.$_POST["data_registr_doc"].'", FIO_doc="'.$_POST["FIO_doc"].'", next_test_doc="'.$_POST["next_test_doc"].'", prediduw_test_doc="'.$_POST["prediduw_test_doc"].'"';
 
mysql_query($query) or die(mysql_error());
mysql_close();
 
echo '<div style="text-align: center; margin-top: 10px;">'.$message.'<a href="view_dolzh.php">Посмотреть сохраненные данные </a><br/><a href="EditDolzh.php">Вернуться назад</a></div>';
?>
в папку uploads загрузка происходит нормально, а вот в папку files не загружает. Как это исправить?

Благодарю заранее!
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.03.2015, 09:33
Ответы с готовыми решениями:

IIS- asp ошибка: HTTP 500.100 - Внутренняя ошибка сервера - ошибка ASP Internet Information Services
Привет! Конфигурация win2000pro sp2, стандартный IIS, IE 5. При попытке обратиться к сценарию(asp) получаю ошибку: &lt;пропуск&gt;...

Ошибка при чтении изменений при обмене РИБ: Ошибка при вызове метода контекста (ПрочитатьИзменения): Ошибка записи!
Доброго всем времени суток! подскажи пожалуйста как исправить ошибку: Ошибка при чтении изменений при обмене РИБ: Ошибка при вызове...

Ошибка при добавлении в файл. Ошибка 101: Ошибка записи на диск (Error 101: Disk write error).
Здравствуйте, возникла проблема такого плана. Нужно произвести добавление записи в файл, но после успешного создания и чтения вылазиет...

14
 Аватар для alpex
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
19.03.2015, 12:07
права у папки проверьте, можно ли в нее писать
1
5 / 5 / 5
Регистрация: 13.11.2014
Сообщений: 325
19.03.2015, 12:11  [ТС]
а как это делается? Ведь в папку uploads загружается нормально..(в uploadsе я проверок не делала)

Благодарю за помощь!
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
19.03.2015, 13:46
Лучший ответ Сообщение было отмечено DDAri как решение

Решение

Цитата Сообщение от DDAri Посмотреть сообщение
foreach($upload_types1 as $upload_type){
может из за того что одинаковые $upload_type в первом массиве и во втором
1
5 / 5 / 5
Регистрация: 13.11.2014
Сообщений: 325
19.03.2015, 13:49  [ТС]
Виталюска, Я тоже так думала, пробовала поменять
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 $date1 = date('Y-m-d-h-i-s');
$newdir1 = mkdir("files/$date1/");
$uploaddir1 = "files/$date1/";
 
 $upload_types1=array('izmen_kol_doc_1', 'izmen_kol_doc_2', 'izmen_kol_doc_3', 'izmen_kol_doc_4', 'izvew_ob_izmen_doc');
 
foreach($upload_types1 as $upload_type1){
    $file_name1=iconv('UTF8', 'UTF8//TRANSLIT', $_FILES[$upload_type1]['name']);
    if(move_uploaded_file($_FILES[$upload_type1]['tmp_name'],$uploaddir1.$file_name1)){
        $path=mysql_real_escape_string($uploaddir1);
        $query.=$upload_type1.'="'.$path.'",';
        $message.=$file_name.' успешно загружен.<br/>';
    }elseif($_FILES[$upload_type1]['size']!=0){
        $message.='Не удалось загрузить '.$file_name1.'<br/>';
    }
}
также все..безрезультатно..

Благодарю, за помощь!
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
19.03.2015, 17:17
Цитата Сообщение от DDAri Посмотреть сообщение
iconv('UTF8'
Нет кодировки UTF8, есть UTF-8
0
5 / 5 / 5
Регистрация: 13.11.2014
Сообщений: 325
19.03.2015, 19:25  [ТС]
KOPOJI, тут не из-за кодировки.

Спасибо, за помощь!
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
19.03.2015, 19:29
а я и не говорил, что из-за этого все беды. Просто уточнил, что пишется по-другому..
0
5 / 5 / 5
Регистрация: 13.11.2014
Сообщений: 325
19.03.2015, 19:32  [ТС]
KOPOJI, благодарю за исправление. Буду знать.

Мне бы сделать загрузку правильно..
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
19.03.2015, 19:34
скорее всего, прав не хватает на создание директории. Но об этом уже говорили выше. Проверьте (после создания директории) http://php.net/manual/ru/function.is-writable.php
1
5 / 5 / 5
Регистрация: 13.11.2014
Сообщений: 325
19.03.2015, 19:47  [ТС]
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
<?PHP header("Content-Type: text/html; charset=utf8");?>
<?php
error_reporting(E_ALL);
include("connect.php");
 
$table = "dolzhnostnye";
mysql_connect(DB_HOST, DB_USER, DB_PASS) or die ("Не могу создать соединение");
mysql_select_db(DB_NAME) or die (mysql_error());
 
$query='INSERT INTO dolzhnostnye SET  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"].'", page_doc="'.$_POST["page_doc"].'", kol_exemp_doc="'.$_POST["kol_exemp_doc"].'",';
 
$date = date('Y-m-d-h-i-s');
$newdir = mkdir("uploads/$date/");
$uploaddir = "uploads/$date/";
 
// $upload_types=array('pdf_doc[]','word_doc[]','excel_doc[]','dwg_doc[]'); //Каждого типа по несколько файлов
$upload_types=array('pdf_doc','word_doc','excel_doc','dwg_doc');
$message='';
 
foreach($upload_types as $upload_type){
    $file_name=iconv('UTF-8', 'UTF-8//TRANSLIT', $_FILES[$upload_type]['name']);
    if(move_uploaded_file($_FILES[$upload_type]['tmp_name'],$uploaddir.$file_name)){
        $path=mysql_real_escape_string($uploaddir);
        $query.=$upload_type.'="'.$path.'",';
        $message.=$file_name.' успешно загружен.<br/>';
    }elseif($_FILES[$upload_type]['size']!=0){
        $message.='Не удалось загрузить '.$file_name.'<br/>';
    }
}
 
 $date1 = date('Y-m-d-h-i-s');
$newdir1 = mkdir("files/$date1/");
$uploaddir1 = "files/$date1/";
 
 $upload_types1=array('izmen_kol_doc_1', 'izmen_kol_doc_2', 'izmen_kol_doc_3', 'izmen_kol_doc_4', 'izvew_ob_izmen_doc');
 
foreach($upload_types1 as $upload_type1){
    $file_name1=iconv('UTF-8', 'UTF-8//TRANSLIT', $_FILES[$upload_type1]['name']);
    if(is_writable($_FILES[$upload_type1]['tmp_name'],$uploaddir1.$file_name1)){
        $path=mysql_real_escape_string($uploaddir1);
        $query.=$upload_type1.'="'.$path.'",';
        $message.=$file_name.' успешно загружен.<br/>';
    }elseif($_FILES[$upload_type1]['size']!=0){
        $message.='Не удалось загрузить '.$file_name1.'<br/>';
    }
}
 
$query.='vhod_nomer_doc="'.$_POST["vhod_nomer_doc"].'", data_registr_doc="'.$_POST["data_registr_doc"].'", FIO_doc="'.$_POST["FIO_doc"].'", next_test_doc="'.$_POST["next_test_doc"].'", prediduw_test_doc="'.$_POST["prediduw_test_doc"].'"';
 
mysql_query($query) or die(mysql_error());
mysql_close();
 echo '<div style="text-align: center; margin-top: 10px;">'.$message.'<a href="view_dolzh.php">Посмотреть сохраненные данные </a><br/><a href="EditDolzh.php">Вернуться назад</a></div>';
 
?>
Сделала так все равно не выходит
PHP
1
2
3
4
5
6
7
8
9
10
foreach($upload_types1 as $upload_type1){
    $file_name1=iconv('UTF-8', 'UTF-8//TRANSLIT', $_FILES[$upload_type1]['name']);
    if(is_writable($_FILES[$upload_type1]['tmp_name'],$uploaddir1.$file_name1)){
        $path=mysql_real_escape_string($uploaddir1);
        $query.=$upload_type1.'="'.$path.'",';
        $message.=$file_name.' успешно загружен.<br/>';
    }elseif($_FILES[$upload_type1]['size']!=0){
        $message.='Не удалось загрузить '.$file_name1.'<br/>';
    }
}
Благодарю, за помощь!
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
19.03.2015, 19:58
DDAri, вы несколько неправильно поняли фразу "проверьте". Я подразумевал проверить с помощью var_dump, к примеру. Ну или, хотя бы, вывести сообщение если недоступно для записи
PHP
1
2
3
4
5
6
7
8
9
if(is_writable($_FILES[$upload_type1]['tmp_name'],$uploaddir1.$file_name1)){
        echo 'Директория доступна';
        $path=mysql_real_escape_string($uploaddir1);
        $query.=$upload_type1.'="'.$path.'",';
        $message.=$file_name.' успешно загружен.<br/>';
    }else echo 'Директория не доступна';
    if($_FILES[$upload_type1]['size']!=0){
        $message.='Не удалось загрузить '.$file_name1.'<br/>';
    }
1
5 / 5 / 5
Регистрация: 13.11.2014
Сообщений: 325
19.03.2015, 21:08  [ТС]
KOPOJI, пробовала по Вашему и через var_dump. Но еще не загружается..
PHP
1
2
3
4
5
6
7
8
9
foreach($upload_types1 as $upload_type1){
    $file_name1=iconv('UTF-8', 'UTF-8//TRANSLIT', $_FILES[$upload_type1]['name']);
    if(move_uploaded_file($_FILES[$upload_type1]['tmp_name'],$uploaddir1.$file_name1)){
        $path=mysql_real_escape_string($uploaddir1);
        $query.=$upload_type1.'="'.$path.'",';
        $message.=var_dump($file_name1).' успешно загружен.<br/>';
    }elseif($_FILES[$upload_type1]['size']!=0){
        $message.='Не удалось загрузить '.var_dump($file_name1).'<br/>';
    }
Благодарю за помощь!
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
20.03.2015, 07:23
DDAri, ну а пишет-то что?

var_dump не надо конкатенировать. Это просто для проверки, отдельно. И не file_name надо проверять var_dump-ом, а то, доступна ли директория для записи.
PHP
1
var_dump(is_writeable($path), $path); exit;
вывод сюда.
1
5 / 5 / 5
Регистрация: 13.11.2014
Сообщений: 325
20.03.2015, 23:22  [ТС]
пишет Директория не доступнаДиректория не доступнаДиректория не доступнаДиректория не доступнаДиректория не доступнаbool(true) string(28) "uploads/2015-03-21-01-18-"

не пойму почему...

Благодарю за помощь!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.03.2015, 23:22
Помогаю со студенческими работами здесь

ASP: Response.Redirect - не работает, ошибка `500 - Внутренняя ошибка сервера'
Всем привет! Есть в ASP-сраничке такой код: Response.Redirect 'page1.asp?ReturnTo=page2.asp' Эта конструкция работала на IIS 4,...

Загружается до окна приветствия и вылетает ошибка: isass.exe - Системная ошибка
Ребята, помогите кто может... весь день бьюсь безрезультатно... с утра пришёл на работу а сервак не пингуется... загружается до...

Django Ошибка доступа (403) Ошибка проверки CSRF. Запрос отклонён
На хостинге разместил сайт и не могу войти в админку, т.к. возникает 403 ошибка &quot;Ошибка доступа (403). Ошибка проверки CSRF. Запрос...

Ошибка HTTP 500 - внутреняя ошибка сервера при отправке почты.
Я пытаюсь отправить почту и присоединяю к ней письма Вот часть страницы Dim myMail Set myMail = CreateObject('CDONTS.NewMail') ...

Ошибка CL.exe завершилась с кодом 2 Что это за ошибка и как исправить?
Ошибка появилась, но не могу понять как ее исправить. #include &lt;iostream&gt; using namespace std; /*Реализуйте класс Дробь....


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru