Форум программистов, компьютерный форум, киберфорум
Python: Web
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/25: Рейтинг темы: голосов - 25, средняя оценка - 4.52
72 / 52 / 8
Регистрация: 13.11.2017
Сообщений: 383

Отображение картинки на странице после отправка файла на сервер CGI

20.11.2020, 07:53. Показов 5161. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, необходимо по заданию с помощью CGI загрузить файл на сервер. Делаю это так. Файл загружается, но по заданию ещё нужно отобразить на новой странице загруженную картинку. Как это можно сделать? Пытаюсь сделать это несколько дней, не выходит.

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Задание №2</title>
</head>
<body>
 
    <form action="/cgi-bin/form2.py" method="POST" enctype="multipart/form-data">
        <p>Выберите файл: <input required type="file" name="filename" /></p>
        <p><input type="submit" value="Загрузить" /></p>
    </form>
    
</body>
</html>
Python
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
import cgi, os
import cgitb; cgitb.enable() 
form = cgi.FieldStorage() 
# Get filename here. 
fileitem = form['filename'] 
# Test if the file was uploaded 
if fileitem.filename: 
    # strip leading path from file name to avoid 
    # directory traversal attacks 
    fn = os.path.basename(fileitem.filename) 
    open(fn, 'wb')
    f.write(fileitem.file.read()) 
    message = 'The file "' + fn + '" was uploaded successfully' 
else: 
    message = 'No file was uploaded' 
 
print("Content-type: text/html\n")
print("""<!DOCTYPE HTML>
    <html>
    <head>
        <meta charset="cp1251">
        <title>Загрузка файла</title>
    </head>
    <body>
        <p>%s</p>
    </body>
    </html>    
     """ % (message,))
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.11.2020, 07:53
Ответы с готовыми решениями:

Отправка файла на сервер CGI
Добрый день, необходимо по заданию с помощью CGI загрузить файл на сервер. Делаю это так. Файл загружается, но по заданию ещё нужно...

Загрузка картинки на сервер по ссылке, отправка, удаление картинки
Какие есть методы, чтобы: а) Загрузить на сервер в папку ../temp картинку по ссылке (например,...

Отправка файла на сервер сразу после его выбора в input file
Добрый день уважаемые программисты , есть инпут, как мне отправить картинку после открытия его в &lt;input type=&quot;file&quot;...

14
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
20.11.2020, 08:28
Разве это решается с помощью Python? Может JS?
Или сразу в шаблон добавить img. Вам же известно название и расположение загруженного файла=> src можно сформировать.
0
72 / 52 / 8
Регистрация: 13.11.2017
Сообщений: 383
20.11.2020, 12:09  [ТС]
ioprst, Можно как-то так сделать. Картинка загружается на сервер, выводится соответствующее сообщение. Но картинка не отображается. Путь к файлу может не так указываю...
Python
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
import cgi, os
import cgitb; cgitb.enable() 
 
form = cgi.FieldStorage() 
fileitem = form['filename'] 
if fileitem.filename: 
    fn = os.path.basename(fileitem.filename) 
    f = open(fn, 'wb')
    f.write(fileitem.file.read()) 
    message = 'Файл "' + fn + '" был успешно загружен' 
else: 
    message = 'Файл не загружен' 
 
print("Content-type: text/html\n")
print("""<!DOCTYPE HTML>
    <html>
    <head>
        <meta charset="cp1251">
        <title>Загрузка файла</title>
    </head>
    <body>""")
print("<p>{}</p>".format(message))
print("<img src="C:\Users\Egor\AppData\Local\Programs\Python\Python39\название картинки.png" alt="">")
 
print("""</body>
        </html>""")
0
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
20.11.2020, 12:22
читайте про разные кавычки и экранирование символов
попробуйте так
Python
1
print(r'<img src="C:\Users\Egor\AppData\Local\Programs\Python\Python39азваниекартинки.png" alt="">')
1
72 / 52 / 8
Регистрация: 13.11.2017
Сообщений: 383
20.11.2020, 13:15  [ТС]
Так ничего не отобразилось. А вот так
Python
1
print("<img src=\"filename.jpg\" >")
стал появляться символ картинки, т.е. тег читается, но файла как будто нет.
0
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
20.11.2020, 13:19
eganator, вы в корректности пути уверены? У вас html файлы лежат рядом с загруженным изображением?

Добавлено через 1 минуту
И почему вы пишите filename.jpg. Ведь ваше изображение имеет имя os.path.basename(fileitem.filename) (что там за имя, только вам известно)
0
72 / 52 / 8
Регистрация: 13.11.2017
Сообщений: 383
20.11.2020, 13:22  [ТС]
ioprst, html файл лежит в одной папке с загруженным изображением.

Добавлено через 2 минуты
Цитата Сообщение от ioprst Посмотреть сообщение
что там за имя, только вам известно
например такой файл "123456.png". Даже прописывая такое имя самого изображения, оно не отображается. Только символ не загруженной картинки
0
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
20.11.2020, 13:24
имя файла корректно?

Добавлено через 1 минуту
Цитата Сообщение от eganator Посмотреть сообщение
например такой файл "123456.png"
так почему вы пишите
Цитата Сообщение от eganator Посмотреть сообщение
print("<img src="filename.jpg" >")
???
Пишите так
Python
1
print("<img src=\"{}\" >".format(fn))
1
72 / 52 / 8
Регистрация: 13.11.2017
Сообщений: 383
20.11.2020, 13:24  [ТС]
Цитата Сообщение от ioprst Посмотреть сообщение
имя файла корректно?
да, корректно
0
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
20.11.2020, 13:27
Цитата Сообщение от eganator Посмотреть сообщение
Даже прописывая такое имя самого изображения, оно не отображается. Только символ не загруженной картинки
не заметил

Добавлено через 2 минуты
попробуйте указать абсолютный путь к загруженному файлу
0
72 / 52 / 8
Регистрация: 13.11.2017
Сообщений: 383
20.11.2020, 13:28  [ТС]
Цитата Сообщение от ioprst Посмотреть сообщение
print("<img src="{}" >".format(fn))
Результат тот же. Тег img виден, а результата в нём (изображение) почему-то нет.
0
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
20.11.2020, 13:32
А что вы получаете в дебагере браузерном? Хром: F12 -> Network
0
72 / 52 / 8
Регистрация: 13.11.2017
Сообщений: 383
20.11.2020, 13:37  [ТС]
ioprst, Failed to load resource: the server responded with a status of 404 (No such CGI script ('/cgi-bin/123456.png'))

Добавлено через 1 минуту
GET http://localhost:8000/cgi-bin/123456.png 404 (No such CGI script ('/cgi-bin/123456.png'))

Добавлено через 1 минуту
Если в папку cgi-bin вставляю картинку, то ошибка пропадает. Но она так и не отображается
0
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
20.11.2020, 13:43
Лучший ответ Сообщение было отмечено eganator как решение

Решение

Python
1
print("<img src=\"http://localhost:8000/{}\" >".format(fn))
1
72 / 52 / 8
Регистрация: 13.11.2017
Сообщений: 383
20.11.2020, 13:44  [ТС]
ioprst, Спасибо Вам большое, получилось! Теперь точно запомню, как это делать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.11.2020, 13:44
Помогаю со студенческими работами здесь

Отображение загруженной картинки на новой странице
Добрый день, необходимо по заданию с помощью CGI на языке Python загрузить файл на сервер. Делаю это так. Файл загружается, но по заданию...

Perl + SSI = ошибка invalid CGI ref 'http://сервер/cgi-bin/view_bag.pl' in ....
Вопрос такой: Скрипт view_bag.pl без ошибок выполняется в папке /cgi-bin/, при этом атрибуты файла rwxr-xr-x. Но есть файл bag.shtml,...

отправка картинки на сервер
всем привет! пытаюсь курлом отправить катринку на сервер следующим образом: $img = curl_file_create(dirname(__FILE__).'/image.jpg',...

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

IdHTTP CGI WebServer загрузка файла с ПК пользователя на сервер
Прошу проконсультировать. Есть CGI Web Server по адресу https://193.158.98.65 (не точный) Задача: Клиент, работая с Web Server,...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru