说明:
首先建立一个数据表: UpLoadTb 结构如下:
| 字段 | 描述 |
| ID | identity列,作为记录的唯一表示 |
| ProcInstID | 流程实例ID号 |
| EmpID | 上传人ID |
| FileName | 文件名称 |
| UpLoadTime | 文件上传时间 |
| FilePath | 文件所在的物理路径(含文件名) |
另外实际我们需要上传人的中文姓名. 这里建一个对应表: Sys_Employee
| 字段 | 描述 |
| EmpID | 用户ID |
| EmpName | 用户中文姓名 |
Web.config文件下<appSettings>节点下增加:
原则是获取当前项目的物理路径,并创建文件夹Temp. 程序中会在Temp下按参数(我这里是流程名)建立文件夹,再按日期建文件夹(...Temp\流程名\日期\), 上传的文件按此分类存储.
上传时更改文件名为随机数(目的是防止其他用户恶意破坏文件).
下载时根据数据库中已存储的文件物理路径以及文件名下载到客户端.
同时还可以根据向这个UserControl传递的参数显示"删除"按钮以实现删除功能(物理文件以及数据记录)
UserControl源文件: UpLoadFile.rar
测试文件aspx:
声名UserControl :protected camc.workflow.businessflow.Files.UpLoadFile UpLoadFile;
Page_Load内传递参数:
注意:在实际的项目应用中我们要在模式窗口下使用,不知道什么原因始终下载不了文件.
最后使用window.open解决了问题.
项目源文件UpLoad_Load_File,可能这个才是大家需要的东西吧,希望对大家有所帮助.
浙公网安备 33010602011771号