web.py文件上传

程序如下:

import web
import cgi

cgi.maxlen = 10 * 1024 * 1024 # 10MB
#http://192.168.2.125:8080/upload
urls = (‘/upload‘, ‘upload‘)

render = web.template.render(‘templates/‘)

fmap = {
  "f1": "/tmp/upload1",
  "f2": "/tmp/upload2"
}

class upload:
    def GET(self):
        fid = web.input(fid="").fid
        web.header("Content-Type","text/html; charset=utf-8")
        return render.upload(fid) 

    def POST(self):
        try:
            x = web.input(myfile={})
            #web.debug(x[‘myfile‘].filename)
            #web.debug(x[‘myfile‘].value)
            #web.debug(x[‘myfile‘].file.read())
            #filedir = ‘/root/python/web.py-0.33/uploadfile‘ # /home/zcw/python/web_chanelpack/web.py-0.33/uploadfile2
            if ‘myfile‘ in x: # to check if the file-object is created
                filepath=x.myfile.filename.replace(‘\\‘,‘/‘) # replaces the windows-style slashes with linux ones.
                filename=filepath.split(‘/‘)[-1] # splits the and chooses the last part (the filename with extension)

                fid = web.input(fid="").fid
                fpath = fmap[fid]
                print "fpath: %s" % fpath

                fout = open(fpath +‘/‘+ filename,‘w‘) # creates the file where the uploaded file should be stored
                fout.write(x.myfile.file.read()) # writes the uploaded file to the newly created file.
                fout.close() # closes the file, upload complete.
            raise web.seeother(‘/upload?fid=%s‘ % fid)
        except ValueError:
            return "File too large"

if __name__ == "__main__":
   app = web.application(urls, globals())
   app.run()

效果:

目录结构:

启动过程:

sudo python setup.py installsudo python upload.py 5987 &访问:http://127.0.0.1:5987/upload?fid=f2

web.py下载地址:http://webpy.org/static/web.py-0.33.tar.gz

时间: 2024-10-16 05:11:03

web.py文件上传的相关文章

Web Uploader文件上传

引入资源 使用Web Uploader文件上传需要引入三种资源:JS, CSS, SWF. <!--引入CSS--> <link rel="stylesheet" type="text/css" href="webuploader文件夹/webuploader.css"> <!--引入JS--> <script type="text/javascript" src="webu

Web Uploader文件上传插件

http://www.jq22.com/jquery-info2665 插件描述:WebUploader是由Baidu WebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件.在现代的浏览器里面能充分发挥HTML5的优势,同时又 不摒弃主流IE浏览器,沿用原来的FLASH运行时,兼容IE6+,iOS 6+, android 4+.两套运行时,同样的调用方式,可供用户任意选用. 采用大文件分片并发上传,极大的提高了文件上传效率. 分片.并发 分片与并发结合,将一

springBoot(10):web开发-文件上传

一.简介 Spring Boot默认使用springMVC包装好的解析器进行上传 二.代码实现 2.1.from表单 <form method="POST" enctype="multipart/form-data" action="/file/upload">     文件:<input type="file" name="roncooFile" />     <input 

Stream - Web大文件上传插件

Stream 简介 Stream 是根据某网的文件上传插件加工而来,支持不同平台(Windows, Linux, Mac, Android, iOS)下,主流浏览器(IE7+, Chrome, Firefox, Safari, 其他)的上传工作,当然在Html5标准下,还支持文件的断点续传功能,有效解决大文件的Web上传问题! 主要特征 1. 支持HTML5.Flash两种方式(跨域)上传 2. 多文件一起上传 3. HTML5支持断点续传,拖拽等新特性 4. 兼容性好IE7+, FF3.6+,

Win Form + ASP.NET Web Service 文件上传下载--HYAppFrame

本章节主要讲解HYAppFrame服务器端如何ASP.NET Web Service实现文件(含大文件)上传,WinForm客户端如何下载文件. 1    服务器端文件上传 1.1 上传文件 函数FileUpload(stringfileFullPath, byte[] file)用于上传文件,生成文件前检查文件路径所在文件夹是否存在,不存在则首先创建文件夹. [WebMethod(EnableSession = true,Description = "上传文件")] public i

用VSCode开发一个asp.net core2.0+angular5项目(5): Angular5+asp.net core 2.0 web api文件上传

第一部分: http://www.cnblogs.com/cgzl/p/8478993.html 第二部分: http://www.cnblogs.com/cgzl/p/8481825.html 第三部分: https://www.cnblogs.com/cgzl/p/8525541.html 第四部分: https://www.cnblogs.com/cgzl/p/8536350.html 这部分就讲从angular5的客户端上传图片到asp.net core 2.0的 web api. 这是

java+web+大文件上传下载

文件上传是最古老的互联网操作之一,20多年来几乎没有怎么变化,还是操作麻烦.缺乏交互.用户体验差. 一.前端代码 英国程序员Remy Sharp总结了这些新的接口 ,本文在他的基础之上,讨论在前端采用HTML5的API,对文件上传进行渐进式增强:     * iframe上传  * ajax上传  * 进度条  * 文件预览  * 拖放上传 1.1 传统形式 文件上传的传统形式,是使用表单元素file,参考 http://www.ruanyifeng.com/blog/2012/08/file_

web大文件上传解决方案支持分片断点上传

一. 功能性需求与非功能性需求 要求操作便利,一次选择多个文件和文件夹进行上传:支持PC端全平台操作系统,Windows,Linux,Mac 支持文件和文件夹的批量下载,断点续传.刷新页面后继续传输.关闭浏览器后保留进度信息. 支持文件夹批量上传下载,服务器端保留文件夹层级结构,服务器端文件夹层级结构与本地相同. 支持大文件批量上传(20G)和下载,同时需要保证上传期间用户电脑不出现卡死等体验:支持文件夹上传,文件夹中的文件数量达到1万个以上,且包含层级结构. 支持断点续传,关闭浏览器或刷新浏览

jsp web 大文件上传源代码

我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用. 首先我们需要了解的是上传文件三要素: 1.表单提交方式:post (get方式提交有大小限制,post没有) 2.表单的enctype属性:必须设置为multipart/form-data. 3.表单必须有文件上传项:file,且文件项需要给定name值 上传文件夹需要增加一个属性webkitdirectory,像这样: <input id="fileFolder" n