Python3 本地测试上传文件

可能刚刚开始很多同学没有接触过HTML,以及一些form表单内的file 不知道如何提交。 本文粗略介绍,一个简单的例子。

准备

本例子是基于 python3 + windows10.

首先,我们可以在任何一个地方 创建一个 文件夹 www
然后在 www 内 再创建两个文件夹 cgi-binfiles

目录结构是这样子的


structure.png

说明一下:

www -- 里面放 html 文件
cgi-bin -- 里面放 py 文件
files -- 里面存放 用户上传的文件

接下来是开始写我们简单的 html 页面,请放置于 www 文件夹下
upload.html





接下来写 server.py ,放置于 cgi-bin 文件夹内

#!/usr/bin/python
#coding=utf-8
# Import modules for CGI handling 
import cgi, os
import cgitb; 
cgitb.enable()
form = cgi.FieldStorage()
# Get filename here.
fileitem = form['uploadfile']
# Test if the file was uploaded
if fileitem.filename:
   # directory traversal attacks
   fn = os.path.basename(fileitem.filename)
   # get store path  and save it 
   open(os.getcwd()+'/files/' + 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\n')
print('file %s' % message)

到此为止,目录结构是这样的


sturcture.png

测试

  1. 可以通过cmd 命令 进入到 www 所在目录
进入到www目录.png
  1. 执行 python3 内置的 CGIHTTPServer 服务
python -m http.server --cgi
run server.png
  1. 浏览器打开页面
http://localhost:8000/upload.html
upload.html
  1. 测试一下提交文件
    桌面上准备个图片


    prepare image.png

    选择图片


    selet file.png

    提交
    submit.png

查看 files 目录

success.png

再测试提交一个 txt 文件


txt file .png

上传成功


uploaded.png

查看 files 目录

image.png

你可能感兴趣的:(Python3 本地测试上传文件)