Форум программистов, компьютерный форум, киберфорум
WordPress
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
20 / 19 / 5
Регистрация: 04.10.2012
Сообщений: 223

Загрузка изображений

10.01.2019, 08:28. Показов 673. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу плагин, на странице настроек есть форма с обычными текстовыми инпутами и поле для загрузки файла, привожу код:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<form enctype="multipart/form-data" method="post">
    Название товара:
    <br/>
    <input type="text" name="dss_title" value="<?=$dss_title?>" />
    <br/>
    Краткое описание товара:
    <br/>
    <textarea name="dss_details"><?=$dss_details?></textarea>
    <br/>
    Стоимость товара:
    <br/>
    <input type="text" name="dss_price" value="<?=$dss_price?>" />
    <br/>
    Изображение товара:
    <br/>
    <input type="text" name="dss_img" value="<?=$dss_img?>" />
    <br/>
    <?php wp_nonce_field( 'my_file_upload', 'fileup_nonce' ); ?>
    <input name="file" type="file" />
    </br>
    <input type="submit" value="Добавить" />
</form>
При отправке форме записываю в раннее созданную таблицу данные из массива POST.

Добавлено через 6 минут
Пишу плагин, на странице настроек есть форма с обычными текстовыми инпутами и поле для загрузки файла, привожу код:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<form enctype="multipart/form-data" method="post">
    Название товара:
    <br/>
    <input type="text" name="dss_title" value="<?=$dss_title?>" />
    <br/>
    Краткое описание товара:
    <br/>
    <textarea name="dss_details"><?=$dss_details?></textarea>
    <br/>
    Стоимость товара:
    <br/>
    <input type="text" name="dss_price" value="<?=$dss_price?>" />
    <br/>
    Изображение товара:
    <br/>
    <input type="text" name="dss_img" value="<?=$dss_img?>" />
    <br/>
    <?php wp_nonce_field( 'my_file_upload', 'fileup_nonce' ); ?>
    <input name="file" type="file" />
    </br>
    <input type="submit" value="Добавить" />
</form>
При отправке форме записываю в раннее созданную таблицу данные из массива POST.
Требуется: загрузить файл(изображение) в папку upload в библиотеку медиафайлы и получить ссылку на него. Честно говоря запутался в предлагаемых движком методах.
Сейчас выглядит это так:
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
if(!empty($_POST)){
        if($_POST['dss_title'], $_POST['dss_details'],$_POST['dss_price'],$_POST['dss_img'],$_FILES['file']){
            die('успешно добавлен!');
        }
        
        $dss_title = $_POST['dss_title'];
        $dss_details = $_POST['dss_details'];
        $dss_price = $_POST['dss_price'];
        $dss_img = $_POST['dss_img'];
        $error = true;
 
        if ( ! function_exists( 'wp_handle_upload' ) ) {
        require_once( ABSPATH . 'wp-admin/includes/file.php' );
            }
 
            $uploadedfile = $_FILES['file'];
 
            $upload_overrides = array( 'test_form' => false );
 
            $movefile = wp_handle_upload( $uploadedfile, $upload_overrides );
 
            if ( $movefile && ! isset( $movefile['error'] ) ) {
                echo "File is valid, and was successfully uploaded.\n";
                var_dump( $movefile );
            } else {
                /**
                 * Error generated by _wp_handle_upload()
                 * @see _wp_handle_upload() in wp-admin/includes/file.php
                 */
                echo $movefile['error'];
            }
        }
    else{
        $dss_title = '';
        $dss_details = '';
        $dss_price = '';
        $dss_img = '';
        $error = false;
    }
Так отправка происходит без ошибок, все данные получаю кроме файла, файл не загружается. Посоветуйте как правильно сделать.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.01.2019, 08:28
Ответы с готовыми решениями:

Загрузка и оптимизация изображений
Доброго времени суток ! Вопрос примерно по той же тематике, по-этому не создавал новую тему. CMS - wordpress. Изображения в миниатюры...

Загрузка изображений в библиотеку файлов
Здравствуйте! После смены доменного имени долго не мог настроить доступ к сайту. Помогли сотрудники техподдержки хостинга. Поставил...

Загрузка группы изображений (больше одного) в комментариях к записям
Ищу возможность загрузки группы изображений (больше одного) в комментариях к записям в Wordpress. С расположением в виде галереи превью в...

1
 Аватар для HectorPrima
716 / 473 / 258
Регистрация: 19.12.2014
Сообщений: 1,801
10.01.2019, 09:46
Ну вот рабочий пример. В настройках wordpress страница Demo.
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
<?php
/*
Plugin Name: Plugin4
*/
 
function demo_settings_page()
{
    add_settings_section("section", "Section", null, "demo");
    add_settings_field("demo-file", "Demo File", "demo_file_display", "demo", "section");
    register_setting("section", "demo-file", "handle_file_upload");
}
 
function handle_file_upload($option)
{
    if (!empty($_FILES["demo-file"]["tmp_name"])) {
        $urls = wp_handle_upload($_FILES["demo-file"], array('test_form' => FALSE));
        $temp = $urls["url"];
        $wp_filetype = wp_check_filetype($temp, null );
        $attachment = array(
            'post_mime_type' => $wp_filetype['type'],
            'post_title' => preg_replace('/\.[^.]+$/', '', $temp),
            'post_content' => '',
            'post_status' => 'inherit'
        );
        // тут по идее к посту нужно привязывать атач
        $attachment_id = wp_insert_attachment( $attachment, $temp);
        $attach_data = wp_generate_attachment_metadata( $attachment_id, $temp );
        wp_update_attachment_metadata( $attachment_id, $attach_data );
        // и т.д.
        return $temp;
    }
    return $option;
}
 
function demo_file_display()
{
    ?>
    <input type="file" name="demo-file"/>
    <?php echo get_option('demo-file'); ?>
    <?php
}
 
add_action("admin_init", "demo_settings_page");
 
function demo_page()
{
    ?>
    <div class="wrap">
        <h1>Demo</h1>
 
        <form enctype="multipart/form-data" method="post" action="options.php">
            <?php
            settings_fields("section");
            do_settings_sections("demo");
            submit_button();
            ?>
        </form>
    </div>
    <?php
}
 
function menu_item()
{
    add_submenu_page("options-general.php", "Demo", "Demo", "manage_options", "demo", "demo_page");
}
 
add_action("admin_menu", "menu_item");
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.01.2019, 09:46
Помогаю со студенческими работами здесь

Хранение изображений и загрузка изображений
Привет, не когда не работал с изображениями когда их много, и тут возникла такая не обходимость, делаю сайт на фреймворке. Мне надо...

Загрузка изображений
Нужно загрузить файлы по URL записаным в файле urls.txt. В URL содержатся иероглифы (файлы хранятся на китайских серверах). Сервера выдают...

Загрузка изображений
Всем привет. Вопрос в следующем. У меня есть изображение (скажем 100х100). Мне нужно в программу загрузить только часть этого изображения...

Загрузка изображений
Всем привет! Подскажите как правильно организовать. Есть доска объявлений http://board.paradiseholdingsl.com/ Вопрос в том, что в...

Загрузка изображений
&lt;input type=&quot;file&quot; multiple name=&quot;file&quot; size=&quot;20&quot;&gt;FILE&lt;hr&gt; строка которой я добавляю файлы на страницу когда я выбираю файлы на текущей...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru