Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでのファイルアップロードの例


ファイルをアップロードするには、HTMLフォームでenctype属性を multipart / form-dataに設定する必要があります 。ファイルタイプの入力タグは、「参照」ボタンを作成します。

<html>
<body>
   <form enctype = "multipart/form-data" action = "save_file.py" method = "post">
   <p>File: <input type = "file" name = "filename" /></p>
   <p><input type = "submit" value = "Upload" /></p>
</form>
</body>
</html>

出力

このコードの結果は次の形式になります-

Pythonでのファイルアップロードの例

上記の例は、サーバーにファイルをアップロードするユーザーを保存するために意図的に無効にされていますが、サーバーで上記のコードを試すことができます。

これがスクリプトsave_file.pyです ファイルのアップロードを処理する-

#!/usr/bin/python
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('/tmp/' + fn, 'wb').write(fileitem.file.read())
   message = 'The file "' + fn + '" was uploaded successfully'
else:
   message = 'No file was uploaded'
print """\
Content-Type: text/html\n
<html>
<body>
   <p>%s</p>
</body>
</html>
""" % (message,)

上記のスクリプトをUnix/Linuxで実行する場合は、次のようにファイル区切り文字を置き換える必要があります。そうしないと、Windowsマシンでopen()ステートメントが正常に機能するはずです。

fn = os.path.basename(fileitem.filename.replace("\\", "/" ))

  1. Pythonのファイルオブジェクト?

    Pythonでは、ファイルの読み取りまたは書き込みを試みるたびに、ライブラリがネイティブに処理されるため、ライブラリをインポートする必要はありません。 最初に行うことは、組み込みのopen関数を使用してファイルオブジェクトを取得することです。 open関数はファイルを開き、ファイルオブジェクトを返します。ファイルオブジェクトには、情報を取得したり、開いたファイルを操作したりするために使用できるメソッドと属性が含まれています。 ファイルとは何ですか? ファイルに対して操作を行う前に、まずファイルとは何かを理解しましょう。ファイルは、関連情報を保存するためのディスク上の名前付きの場所です。フ

  2. Pythonのジャンクファイルオーガナイザー?

    これは、ほとんどのファイルとフォルダーを1つの場所に保持し、すべてのファイルが何であるか混乱することがあり、手動でそれを行うには怠惰すぎるPythonプログラマーにとって非常に役立つように思われるかもしれません。以下は、適切なフォルダ内のすべてを1回で整理または簡略化して、空のディレクトリを削除するPythonプログラムです。 したがって、さまざまなタイプのファイルが多数存在するディレクトリパスがあり(以下のように)、プログラムは各ファイルタイプをそれぞれのフォルダに分離します(以下のように)。 入力フォルダの構造 必要な出力 まず、さまざまなフォルダに分離するファイル