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

Python CGIプログラミングを使用してファイルをアップロードするにはどうすればよいですか?


ファイルをアップロードするには、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>
出力 このコードの結果は次の形式になります-

File: Choose file
Upload
ファイルのアップロードを処理するためのスクリプト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を使用してPDFファイルをExcelファイルに変換する方法は?

    Pythonには、さまざまなタイプの操作を処理するためのライブラリの大規模なセットがあります。この記事では、PDFファイルをExcelファイルに変換する方法を説明します。 pdfをCSVに変換するためにPythonで利用できるさまざまなパッケージがありますが、Tabula-pyモジュールを使用します。 tabula-pyの大部分はJavaで記述されており、PDFドキュメントを読み取り、PythonDataFrameをJSONオブジェクトに変換します。 tabula-pyを使用するには、システムにJavaがプリインストールされている必要があります。ここで、PDFファイルをcsvに変換するには、

  2. Pythonを使用してファイルの名前を変更するにはどうすればよいですか?

    osモジュールのrenameメソッドを使用できます。たとえば、ファイルの名前をa.txtからb.txtに変更し、これらのファイルを現在のディレクトリに配置するとします。 >>> import os >>> os.rename('a.txt', 'b.txt') また、shutil(またはシェルユーティリティ)モジュールを使用することもできます。 shutil.move(source、destination)を呼び出すと、パスのソースにあるファイルまたはフォルダーがパスの宛先に移動し、新しい場所の絶対パスの文字列が返されます。