IIS部署瓶之实现文件上传功能

  

1,环境windows 7 x64

IIS 6 python 2.7.9

wfastcgi-3.0.0 flask-0.12.2

2,安装wfastcgi,并启动wfastcgi

pip安装wfastcgi

C: \ \用户wangpan> D: \ software \ \ wfastcgi-enable Python27 \脚本。exe
已经在配置提交路径“机/WEBROOT/APPHOST”向“机/WEBROOT/APPHOST”的”系统。网络服务器/fastCgi”节应用了配置更改
" d: \软件\ python27 \ python.exe | d: \ software \ python27 \ lib \网站\ wfastcgi。佩克”现在可以用作FastCGI脚本处理器

3,安装瓶

pip安装瓶

4,打开窗户功能,安装IIS,启用CGI

 IIS部署瓶之实现文件上传功能

5,安装URL重写

IIS需要安装URL重写组件,这个可以通过微软Web平台安装程序来安装。下载微软Web平台安装程序后运行,搜索URL,安装URL重写工具。

 IIS部署瓶之实现文件上传功能

6,配置IIS 6.1

添加网站,根目录是d: \ mysite \ \数据上传

 IIS部署瓶之实现文件上传功能

6.2, d: \ mysite \ \数据上传目录结构

上传静态上传目录的静态文件目录

上传。py上传文件程序

网。配置配置文件

6.3上传目录下网络。配置内容

 & lt; ? xml  version=" 1.0 ",编码=" utf - 8 " ?比;
  ,& lt; configuration>
  ,& lt; system.webServer>
  ,& lt; handlers>
  ,& lt; add  name=" FlaskFastCGI ",路径=?”,动词=?”,模块=癋astCgiModule”, scriptProcessor=" d: \软件\ python27 \ python.exe | d: \ software \ python27 \ lib \网站\ wfastcgi.pyc”, resourceType=安幻鳌?requireAccess=敖疟尽?/比;
  ,& lt;/handlers>
  ,& lt; security>
  ,& lt; requestFiltering  allowDoubleEscaping=" true "祝辞& lt;/requestFiltering>
  ,& lt;/security>
  启用,& lt; directoryBrowse =" true ",/比;
  ,& lt;/system.webServer>
  
  & lt; appSettings>
  ,& lt; !——, Required  settings ——比;
  ,& lt; add 关键=" WSGI_HANDLER”, value=" https://www.yisu.com/zixun/upload.app ",/比;
  ,& lt; add 关键=" PYTHONPATH环境”,value=" https://www.yisu.com/zixun/眫/,/比;
  
  & lt; !——, Optional  settings ——比;
  ,& lt; add 关键=" WSGI_LOG”, value=" d: \ data \ mysite \ logs \ oboeqa_web.log“,/比;
  ,& lt; add 关键=" WSGI_RESTART_FILE_REGEX”, value=",/比;
  ,& lt;/appSettings>
  ,& lt;/configuration> 

注意:

<李>

scriptProcessor的内容是执行wfastcgi-enable的输出

<李>

WSGI_HANDLER的价值

<李>

PYTHONPATH环境的价值

<李>

WSGI_LOG的目录一定要存在

6.4上传。py上传文件的代码

 # _ * _coding: utf-8_ * _
  import 操作系统
  得到flask  import 瓶,,请求,,重定向,url_for, render_template
  得到werkzeug  import  secure_filename
  得到flask  import  send_from_directory
  
  
  UPLOAD_FOLDER =, ' d: \ \ mysite \上传\静态数据的
  ALLOWED_EXTENSIONS =,集((“三种”,“多克斯”,“医生”,“xlsx”,,,“xls”、“ppt”,,,“pdf”, png,, jpg,, jpeg,, ' gif '])
  
  app =,瓶(__name__)
  app.config [' UPLOAD_FOLDER '],=UPLOAD_FOLDER
  
  def  allowed_file(文件名):
  ,,,return “。”,拷贝filename 以及\
  ,,,,,,,,,,filename.rsplit (' . ', 1) [1], ALLOWED_EXTENSIONS拷贝
  
  @app.route('/',方法=[‘得到’,,'文章'])
  def  upload_file ():
  ,,,if  request.method ==,“POST”:
  ,,,,,,,file =, request.files(“文件”)
  ,,,,,,,filename =file.filename
  ,,,,,,,if  file 以及allowed_file(文件名):
  ,,,,,,,,,,,# filename =, secure_filename (file.filename)
  ,,,,,,,,,,,file.save (os.path.join (app.config (“UPLOAD_FOLDER”),文件名))
  ,,,,,,,,,,,return 重定向(url_for (uploaded_file,文件名=文件名))
  ,,,,,,,,,,,# return 重定向(“success.html”)
  ,,,return “
  ,,,& lt; ! doctype  html>
  ,,,& lt; title> Upload  new  File
  ,,,& lt; h2> Upload  new  File
  ,,,& lt; form  action=" ",方法=post  enctype=多部分/form-data>
  ,,,,,& lt; p> & lt; input 类型=file  name=file>
  ,,,,,,,,& lt; input 类型=submit 值=https://www.yisu.com/zixun/Upload> 

IIS部署瓶之实现文件上传功能