Форум программистов, компьютерный форум, киберфорум
Joomla
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/16: Рейтинг темы: голосов - 16, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 15.06.2010
Сообщений: 16

Загрузка файлов в папку с Joomla

10.02.2013, 21:21. Показов 3297. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Вот такая проблема:
Работает как модуль
есть форма загрузки и файл которые это обробляет.
Форма загрузки в папке tmpl(html):
HTML5
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
<?php
  
/**
 * @package     Joomla.Tutorials
 * @subpackage  Module
 * @copyright   (C) 2012 http://jomla-code.ru
 * @license     License GNU General Public License version 2 or later; see LICENSE.txt
 */
  
// No direct access to this file
//defined('_JEXEC') or die;
$user =& JFactory::getUser();
?>
<link rel="stylesheet" type="text/css" href="modules/mod_uploads/js/jCleverTemplate/default/css/jClever.css" />
<link type="text/css" href="modules/mod_uploads/js/jCleverTemplate/default/css/jquery.jscrollpane.css" rel="stylesheet" media="all" />
<script type="text/javascript" src="modules/mod_uploads/js/js/jquery.mousewheel.js"></script>
<script type="text/javascript" src="modules/mod_uploads/js/js/jquery.jscrollpane.min.js"></script>
<script type="text/javascript" src="modules/mod_uploads/js/js/jClever.js" charset="utf-8"></script>
<link rel="stylesheet" type="text/css" href="modules/mod_uploads/mod_uploads.css">
<script>
    jQuery(document).ready(function() {
        jQuery('.jClever').jClever(
            {
                applyTo: {
                    select: false,
                    checkbox: false,
                    radio: false,
                    button: true,
                    file: true,
                    input: false,
                    textarea: false
                }
            }                
        );
    });
</script>
<?if ($user->guest) {
    echo "<p>Перед загруйкой логотипа авторизуйтесь или зарегистрируйтесь.</p>";
} 
else {
?>
<div class="form_upload">
    <form action="/modules/mod_uploads/tmpl/form_uploads.php" method="post" enctype="multipart/form-data" class="jClever">
        <label>Название логотипа</label><br/>
        <input type="text" name="name" maxlength="150"/><br/>
        <p>Используйте то же название, что и в логотипе.</p>
        <br/><br/>
        <div class="row">
            <label>EPS файл</label><br/>
            <input type="file" name="esp_file" /><br/>
            <p>Разрешенные типы файлов: EPS ZIP</p>
        </div>
        <br/><br/>
        <div class="row">
            <label>PNG файл</label><br/>
            <input type="file" name="png_file" /><br/>
            <p>Файлы должны быть не менее 10 Мб . <br/> Разрешенные типы файлов: PNG . <br/>Изображения должны быть точно 2000x2000 пикселей. </p>
        </div>
        <br/><br/><br/>
        <div class="row">
            <label>Дополнительные файлы</label><br/>
            <input type="file" name="other_file" /><br/>
            <p>Файлы должны быть не менее 10 Мб . <br/> Разрешенные типы файлов: PNG GIF JPG JPEG.</p>
        </div>
        <br/><br/>
        <label>Цена</label><br/>
        <input type="text" name="price_first" onkeyup="this.value = this.value.replace (/\D/, '')" /><br/>
        <p>Введите цену которая будет видна покупателю, в у.е. сайта 
        KupiLogo*. Это общая цена, которую пользователь будет
        платить, чтобы купить этот логотип.
        </p>
        <br/><br/>
        <label>Теги</label><br/>
        <input type="text" name="tags" />
        <br/><br/>
        <label>Описание логотипа</label><br/>
        <input type="text" name="description" maxlength="255" />
        <br/><br/>
        <label>Возможное использование</label><br/>
        <input type="text" name="use_of" maxlength="255" />
        <br/><br/>
        <p style="color:grey;">*у.е. сайта KupiLogo = 1$</p>
        <br/><br/>
        <div class="upload_button">
            <input type="submit" value="Сохранить" />
            <input type=reset value="Отмена" name="cancel"/>
        </div>
    </form>
</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
93
94
95
96
97
<?php
 
$esp_file_name = $_FILES['esp_file']['name'];
$png_file_name = $_FILES['png_file']['name'];
$other_file_name = $_FILES['other_file']['name'];
 
$esp_file_size = $_FILES['esp_file']['size'];
$png_file_size = $_FILES['png_file']['size'];
$other_file_size = $_FILES['other_file']['size'];
//------------------------------------------------
$name=$_POST["name"]; 
$price_first=$_POST["price_first"]; 
$tags=$_POST["tags"]; 
$description=$_POST["description"]; 
$use_of=$_POST["use_of"]; 
 
//$tags_array [] = split(',',$tags);
 
 
$allowed_filetypes_esp = array('.zip','.esp','.rar'); // Здесь мы перечисляем допустимые типы файлов
$allowed_filetypes_png = array('.png'); 
$allowed_filetypes_other = array('.png','.gif','.jpg','.jpeg','.JPG'); 
$max_filesize = 10485760; // Максимальный размер загружаемого файла в байтах (в данном случае он равен 0.5 Мб).
$upload_path = 'modules/mod_uploads/tmpl/logos/'; // Место, куда будут загружаться файлы (в данном случае это папка 'files').
$ext_esp = substr($esp_file_name, strpos($esp_file_name,'.'), strlen($esp_file_name)-1); // В переменную $ext заносим расширение загруженного файла.
$ext_png = substr($png_file_name, strpos($png_file_name,'.'), strlen($png_file_name)-1);
$ext_other = substr($other_file_name, strpos($other_file_name,'.'), strlen($other_file_name)-1);
// Сверяем полученное расширение со списком допутимых расширений, которые мы определили в самом начале. Если расширение загруженного файла не входит в список разрешенных, то прерываем выполнение программы и выдаем соответствующее сообщение.
 
if(!in_array($ext_esp,$allowed_filetypes_esp))
die('Данный тип файла не поддерживается.');
if(!in_array($ext_png,$allowed_filetypes_png))
die('Данный тип файла не поддерживается.');
if(!in_array($ext_other,$allowed_filetypes_other))
die('Данный тип файла не поддерживается.');
 
// Теперь проверим размер загруженного файла и если он больше максимально допустимого, то прерываем выполнение программы и выдаем сообщение.
 
if(filesize($_FILES['esp_file']['tmp_name']) > $max_filesize)
die('ESP Фаил слишком большой.');
if(filesize($_FILES['png_file']['tmp_name']) > $max_filesize)
die('PNG Фаил слишком большой.');
if(filesize($_FILES['other_file']['tmp_name']) > $max_filesize)
die($other_file_name.' Фаил слишком большой.');
 
// Проверяем, доступна ли на запись папка, определенная нами под загрузку файлов (папка files). Если вдруг недоступна, то выдаем сообщение, что на папку нужно поставить права доступа 777.
 
if(!is_writable($upload_path))
die('Невозможно загрузить фаил в папку. Установите права доступа - 777.');
 
//$message = 'Логин пользователя который загрузил этот логотип: {$user->username} <br/><hr/>';
// Загружаем фаил в указанную папку.
if(move_uploaded_file($_FILES['esp_file']['tmp_name'],$upload_path . $esp_file_name))
{
    $message = '<h3>Описание логотипа : </h3><br/>
    <p>Название логотипа: '. $name .' </p><p>Цена: '.$price_first.'</p> <p>Теги: '.$tags.'</p> <p>Описание: '.$description.'</p> <p>Возможное использование: '.$use_of.'</p> 
    <hr/
    <h4>Файл ESP успешно загуржен!</h4><br/><p>Путь к файлу :'. $upload_path . $esp_file_name .'</p><p>Имя файла: '. $esp_file_name .'</p><p>Размер файла: '. $esp_file_size .'</p> 
    <hr/>';
}
else
{
echo 'При загрузке возникли ошибки. Попробуйте ещё раз.';
}
if(move_uploaded_file($_FILES['png_file']['tmp_name'],$upload_path . $png_file_name))
{
    $message .= '
    <h3>Файл PNG успешно загуржен!</h3><br/><p>Путь к файлу :'. $upload_path . $png_file_name .'</p><p>Имя файла: '. $png_file_name .'</p><p>Размер файла: '. $png_file_size .'</p> 
    <hr/>';
}
else
{
    echo 'Bad :( png';
}
if(move_uploaded_file($_FILES['other_file']['tmp_name'],$upload_path . $other_file_name))
{
    $message .= '
    <h3>Файл <span style="text-transform:uppercase;">'.$other_file_name.'</span> успешно загуржен!</h3><br/><p>Путь к файлу :'. $upload_path . $other_file_name .'</p><p>Имя файла: '. $other_file_name .'</p><p>Размер файла: '. $other_file_size .'</p>'; 
}
else
{
    echo 'Bad :( png';
}
$admin_mail = 'regkupilogo@gmail.com';
if (mail("web.greenplanet@gmail.com", "Новый Логотип", $message))
{
    echo ' Ваши файлы успешно загружены.<br/> Ваш логотип появится на витрине после проверки модератором.<br/> Уведомление о продаже прийдет Вам на почту, деньги с продажи будут перечисленны на кошелек который Вы указали при регистрации.<br/>
    <b> Загружайте больше файлов </b>.<br/>
    Желаем удачных продаж!<br/>
    KupiLogo';
}
else
{
    echo 'Bad mail :(';
}
 
?>
Вот тут задаю путь :
PHP
1
$upload_path = 'modules/mod_uploads/tmpl/logos/';
Вот тут проверка:
PHP
1
2
if(!is_writable($upload_path))
die('Невозможно загрузить фаил в папку. Установите права доступа - 777.');
И мне все врем выбивает: Невозможно загрузить фаил в папку. Установите права доступа - 777
помогите советом пожалуйста.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.02.2013, 21:21
Ответы с готовыми решениями:

Загрузка файлов в папку
Ребята, подскажите где ошибка. Мне нужно из списка выбрать папку и именной в нее закачать файл! &lt;?php $arr = glob('./mp3/*'); ...

Загрузка файлов папку
Хочу организовать загрузку изображений в папку /resources/img, а в БД записывать имена( что бы не грузить картинки в БД и не раздувать её)....

Загрузка файлов в Joomla
Есть интернет-магазин на Joomla. Нужно, чтоб покупатель, когда оформляет заказ, мог прикрепить файл к своему заказу. Ссылка на этот файл...

6
 Аватар для Tip.the.besT
7 / 7 / 3
Регистрация: 01.04.2012
Сообщений: 120
11.02.2013, 14:13
Сервер ваш? Если да то чмодали рекурсивно?

Ну а вообще, попробовать в другую папку залить, глянуть как пойдёт.
0
0 / 0 / 0
Регистрация: 15.06.2010
Сообщений: 16
12.02.2013, 02:00  [ТС]
Цитата Сообщение от Tip.the.besT Посмотреть сообщение
Сервер ваш? Если да то чмодали рекурсивно?
Ну а вообще, попробовать в другую папку залить, глянуть как пойдёт.
Сервер мой. чмодали рекурсивно ???
В другую папку пробывал тоже самое...
0
 Аватар для Tip.the.besT
7 / 7 / 3
Регистрация: 01.04.2012
Сообщений: 120
12.02.2013, 06:46
chmod -cR 777 /var/www , тобишь ключ R для того, что бы все вложенные папки чмоднулись.
0
Всегда не хватает времени
 Аватар для Mischanja
119 / 119 / 20
Регистрация: 15.10.2009
Сообщений: 493
13.02.2013, 01:39
да и посмотрите вы кто владелец папок. если у Вас есть там Root пользователь и обычный, который ставил права то возможно проблема в этом. у меня так было на VDS. владелец папки был Рут а не пользователь который владел базой. из-за этого записать ничего не получалось
1
Почетный модератор
12274 / 5340 / 268
Регистрация: 05.04.2011
Сообщений: 14,086
Записей в блоге: 2
13.02.2013, 01:52
Цитата Сообщение от Mischanja Посмотреть сообщение
владелец папки был Рут а не пользователь который владел базой. из-за этого записать ничего не получалось
Вот-вот. И у меня такое бывало...
0
 Аватар для Tip.the.besT
7 / 7 / 3
Регистрация: 01.04.2012
Сообщений: 120
14.02.2013, 09:44
Дак если на 777 чмоднули, любой писать может...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.02.2013, 09:44
Помогаю со студенческими работами здесь

Загрузка файлов пользователем в определённую папку
Создаю приложение, которое позволяет пользователям загружать файлы на мой сервер по протоколу sftp. Для этого нужно на сервере создать...

Загрузка прикрепляемых файлов в папку на диске
Здравствуйте форумчане. Помогите разобраться. Ситуация следующая. В самописной БД создал механизм прикрепления файлов к...

загрузка файлов на сайт Joomla 1.5, самописный компонент
Здравствуйте! Пробую писать свой первый компонент. Нужно реализовать загрузку файлов через форму. вот поле для выбора файла: ...

Загрузка файлов на сервер в папку с номером группы пользователя
Доброго времени суток. Файлы через личный кабинет пользователя загружаются пока в папку upload. Как можно сделать, что бы если у...

Загрузка файла в папку
Помогите с кодом пожалуйста! я только учусь с пхп программировать))) Краткое описание: Скрипт выводит web форму для загрузки...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru