質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

1676閲覧

フォームからファイルをアップロード

threeeverytwo

総合スコア49

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2018/05/26 18:01

前提・実現したいこと

フォームから選択したファイルをアップロードできるようにする。

発生している問題・エラーメッセージ

python cgi のエラーが書かれている画面

該当のソースコード

wordOperation.pyからform部分に該当する箇所を 抜粋

python

1baseHtml1 = """ 2 <html lang="ja"> 3 <head> 4 <title>ENGLISHPRACTICE</title> 5 </head> 6 <body> 7""" 8registAllHtml = """ 9 <h1>EnglishWordRegist</h1> 10 <p>ユーザー:%s</p> 11 <form accept-charset="UTF-8" action="wordOpeComplete.py" method="post" enctype="multipart/form-data"> 12 <input type="hidden" name="operation2" value="registAll"> 13 <input type="hidden" name="wordBook" value="%s"> 14 <p>■ ファイルを選択してください。</p> 15 ファイル:<input type="file" type="file" /> 16 <br><br> 17 <input type = "submit" name="submit" value="登録"/> 18 <input type = "hidden" name="userName" value="%s"> 19 </form> 20 <form action="wordManagementWindow.py" method="get"> 21 <input type="submit" name="wordManagementWindow" value="戻る" /> 22 <input type="hidden" name="userName2" value = "%s" /> 23 </form> 24""" 25baseHtml2 = """ 26 </body> 27 </html> 28""" 29#============================================================================== 30# 本体処理 31#============================================================================== 32cgitb.enable() 33print('Content-type: text/html; charset=utf-8\r\n') 34sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') 35sys.stderr = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') 36 37#print('Content-type:text/html\r\n') 38 39#--- フォーム処理 40form = cgi.FieldStorage() 41userName = form.getvalue('userName') 42operation = form.getvalue('operation') 43wordBook = form.getvalue('wordBook') 44 45#--- HTML出力処理 46print(baseHtml1) 47 48elif operation == "registAll": 49 print(registAllHtml % (userName, wordBook, userName, userName)) 50 51print(baseHtml2) 52

wordOpeComplete.pyより、formからファイルを受け取った後の処理を記述したコードを 抜粋

python

1 2cgitb.enable() 3sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') 4sys.stderr = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') 5 6#--- フォーム処理 7form = cgi.FieldStorage() 8 9#--- HTML出力処理 10elif operation2 == "registAll": 11 fileitem = form["file"] 12 if fileitem.file: 13 linecount = 0 14 while True: 15 print(line) 16 line = fileitem.file.readline() 17 if not line: 18 break 19 linecount = linecount + 1 20  print("ok")

補足情報(FW/ツールのバージョンなど)

python3.x

参考サイト:https://docs.python.jp/3/library/cgi.html

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

typeが2つになっててnameが指定されてないからでは?

html

1ファイル:<input type="file" type="file" />

html

1ファイル:<input type="file" name="file" />

投稿2018/05/26 22:04

m.ts10806

総合スコア80765

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問