以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]如何根据多列重命名上传的附件  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=57587)

--  作者:bacilluslxx
--  发布时间:2014/9/27 9:14:00
--  [求助]如何根据多列重命名上传的附件

有“日期编辑人文档标题、分类、版本号、备注、附件”几列,想让长传的附件重命名:

如上传了一个名为“出差管理制度.pdf”的附件,如何自动重命名为:“20140927_张三_出差管理制度_V1.pdf”?

我在表的BeforeAttachFile事件中,写了如下代码:

Dim dr As DataRow = e.DataRow           \'定义正在编辑的行
Dim fn As String = e.FileName               ’定义上传的附件文件名,如“出差管理制度.pdf”
Dim Parts() As String = fn.Split(".")        \'定义一个数组
Dim fn1 As String = parts(0)                  ’获得文件名,fn1=parts(0)=出差管理
 
Dim fn2 As String = parts(1)                  ’获得文件后缀,fn2=parts(1)=pdf
Dim fn3 As String                                  ’合成新的文件名:fn3=日期_编辑人_文档标题_版本号

If dr.IsNull("日期") OrElse dr.IsNull("编辑人") OrElse dr.IsNull("文档标题") OrElse dr.IsNull("版本号") Then
    MessageBox.Show("日期,编辑人,文档标题,版本号不能为空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    e.Cancel = True
    fn3 = "日期" & "_" & "编辑人" & "_" & "文档标题" & "_" & "版本号"
    e.FileName = fn3 & "." & fn2             ’新的文件名:fn3.pdf
End If

 

我不知道错误在哪?附件文件名依然是以前的文件名。

 

 


--  作者:bacilluslxx
--  发布时间:2014/9/27 9:22:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:图片1.jpg
图片点击可在新窗口打开查看

--  作者:Bin
--  发布时间:2014/9/27 9:24:00
--  
http://www.foxtable.com/help/topics/2209.htm
--  作者:bacilluslxx
--  发布时间:2014/9/27 9:32:00
--  

我根据2209.html做了一些改进,因为我的附件可能是jpg、pdf、rar、doc、mp3等等后缀,所以想先获得上传文件的后缀。


--  作者:Bin
--  发布时间:2014/9/27 9:35:00
--  
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=56734&skin=0
--  作者:bacilluslxx
--  发布时间:2014/9/27 9:38:00
--  

这一行好像忘记加dr了,改过来还是不行:

fn3 = dr("日期") & "_" & dr("编辑人") & "_" & dr("文档标题") & "_" & dr("版本号")


--  作者:Bin
--  发布时间:2014/9/27 9:42:00
--  
看5楼.