Локальный сервер: Apache/2.4.53 (Win64) OpenSSL/1.1.1n PHP/7.4.28
python 3.10.4
В развёрнутой мной на локальном сервере XAMPP, платформе LMS 'Moodle'(платформа для обучения) есть инструмент загрузки файлов "filepicker". Я хочу передать текст, полученный из инструмента filepicker ( загружает только .txt ), обработать его, получить данные обратно, и вывести (echo) на страницу.
Я выполнил var_dump($content); загруженного файла, Так что это точно строка:
string(828) "..........my text here............"
Ещё я точно знаю, что мой python-CGI скрипт работает, если я вручную буду вводить данные(делается через строку браузера - знак вопроса, имя переменной, = ввод данных):
http://localhost/speciallocation / local/ tokenize / morgot.py?someamountoftext=Enter your text here
Вывод: ['Enter', 'your', 'text', 'here']
Но, когда я нажимаю на кнопку submit, выводится только название моего файла, ввиду того, что я не отсылал его на обработку в CGI, а просто вывел его echo'м. Если просто вывести echo'м содержимое файла, это также даст результат.
Это наводит меня на мысль, что проблема где-то в части отправить\принять данные.....
Какие-нибудь мысли, народ?
Мой php код:
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- <?PHP
- require_once($CFG->dirroot . '/local/tokenize/classes/forms/tokenization.php');
- $PAGE->set_url(new moodle_url('/local/tokenize/tokenization.php'));
- $PAGE->set_context(\context_system::instance());
- $PAGE->set_title(get_string('TOKENIZATOR', 'local_tokenize'));
- $mform= new tokenization();
- echo $OUTPUT->header();
- if ($mform->is_cancelled()) {
- //Handle form cancel operation, if cancel button is present on form
- } else if ($fromform = $mform->get_data()) {
- //In this case you process validated data. $mform->get_data() returns data posted in form.
- $name = $mform->get_new_filename('userfile');
- echo $name. '<br>';
- $content = $mform->get_file_content('userfile');
- //echo $content;
- $morgot_link = "http:// localhost / diplom / local / tokenize / morgot.py?someamountoftext=" . $content;
- echo $morgot_data;
- } else {
- // this branch is executed if the form is submitted but the data doesn't validate and the form should be redisplayed
- // or on the first display of the form.
- //displays the form
- $mform->display();
- }
- echo $OUTPUT->footer();