<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<form action="ctl_file.fsp" method="post" enctype="multipart/form-data">
<input type="text" name="ttt" value="">
<input type="file" name="myfile">
<input type="submit" value="保存"/>
</form>
</body>
</html>
1 form表单的action指向了VFP后端的ctl_file类,也就是这个表单的内容会被ctl_file类所接收。
2 enctype参数multipart/form-data表示表单由键值对提交的方式,改成文件上传模式。
3 在 HTML 文档中 <input type="file"> 标签每出现一次,一个 FileUpload文件 对象就会被创建。 它包含一个文本输入字段,用来输入文件名,还有一个按钮,用来打开文件选择对话框选择文件。
如果要过滤指定后缀的文件,添加accept属性,如只能选择rar文件
<input class="style_file_content" accept=".rar" type="file" />
切记:value属性不要写,name的值是给后端用的
Define Class ctl_file As Session
Procedure ondefault
clear
oFile=getupfile()
?"ttt的值",oFile.oFieldColl.Item("ttt").fielddata
?"上传文件名",oFile.oFieldColl.Item("myfile").filename
*--文件数据
cFileData=oFile.oFieldColl.Item("myfile").fielddata
*--文件保存起来
STRTOFILE(cFileData,getwwwrootpath()+"1.rar")
return "ok"
Endproc
Enddefine
HTML前端FORM是文件上传模式,所以我们利用getupfile()来接收,它会返个文件对象,包含了一个集合,每个集合的KEY就是前端传入的name字段。
结构:oFieldColl集合,item(key)是个对像存放每个字段的相关内容。集合的key=前端的name
oFieldColl.item(key).FieldName:字段名 (前端传入的name)
oFieldColl.item(key).FieldData: 字段值(前端传入的value)
oFieldColl.item(key).FileName: 文件名,如果上传的是文件类型,这里可以获取原始文件名。
oFieldColl.item(key).FieldType:字段类型
getwwwrootpath的作用指向wwwroot目录,编译之后,就是网站根目录。
可以看到VFP的窗口有输出了
查看wwwroot目录
喜欢的可以看视频