文件上传效果:
1.在 views 下面新建一个 fileupload.html 视图模版文件
Insert title herevar fileNameList = JSON.parse('{$fileNameList}');
for(var i=0;i
{
var fileName = fileNameList[i]
document.write("")
}
2.在 controls 下面新建一个 FileUploadAction.py 类文件
import json
import shutil
import os
import uuid
class FileUploadAction:
def execute(self, request, response):
return "success"
def add(self, request, response):
# 上传后文件名列表
fileNameList = []
# 获得表单 上传的所有文件列表
fileList = request.getFileList()
length = len(fileList)
for i in range(0, length):
pictureItem = fileList[i]
if pictureItem and pictureItem.getFileName() !="":
# 如果要保证 文件名的唯一性 可以 截取文件扩展名 然后用 uuid.uuid1() 生成唯一 文件名
picture = pictureItem.getFileName()
#保存上传文件 到 upload 文件夹
sourceFile = pictureItem.getFilePath()
destFile = os.path.realpath("upload")+"/"+picture # 文件服务器端绝对路径
shutil.copy(sourceFile,destFile)
fileNameList.append(picture)
request.setAttribute("fileNameList", json.dumps(fileNameList))
# 调用 execute 重新转发到 文件上传页面
return self.execute(request, response)
3.在 urls.py 添加 fileupload 到 FileUploadAction 的映射
# 拦截器列表 按顺序执行拦截 Action
urlInteceptorList = [
"interceptor/DefaultInterceptor"
]
# 网址映射转发
urlActionMapping = {
"index":{
"action":"controls/IndexAction",
"success":"index.html"
},
"fileupload":{
"action":"controls/FileUploadAction",
"success":"views/fileupload.html"
}
}
4.重新启动 WebServer.py 服务器 在 浏览器 访问 http://localhost:8000/views/fileupload 看到上面截图 文件上传效果