一个加强的文件上传(VB.Net) (转)

一个加强的文件上传(VB.Net) (转)[@more@]

这个文件上传应该可以满足一般的需要了,其中的添加到数据库记录,您可以按需要省略掉。

代码:UPLOAD.ASPx




sqlClient" %>

  'Dim lstrFileFolder as string
  Dim CMDfilename as string  '表单cmdfilename的值
  CMDfilename = request("CMDfilename")
  '''
  '''
  ' 如果上传目录为空,就使用" upload "作为缺省上传目录
  ' 获得上传到服务器的目录名称
  if dir.value <> "" then
   lstrFileFolder_1 = dir.value & "/"
  lstrFileFolder = trim((Server.MapPath(""))) & "" & dir.value & ""
  else
  lstrFileFolder_1 = "upload/"
   lstrFileFolder = trim((Server.MapPath(""))) &"upload"
  end if

  ' 获得文件名称
  lstrFileName = loFile.PostedFile.FileName

   ' 注: loFile.PostedFile.FileName 返回的是
   '通过文件对话框选择的文件名,这之中包含了文件的目录信息

  '只能上传.xls文件
  if instr(Path.GetFileName ( lstrFileName ),".xls")=0 and instr(Path.GetFileName ( lstrFileName ),".Xls")=0 and instr(Path.GetFileName ( lstrFileName ),".XLS")=0 then
  MessageNotXLS.InnerHtml = "只能上传.xls文件"
  MessageNotXLS.Style("color") = "red"
  exit sub
  end if

  if CMDfilename = "random" then
  dim lstrFileName111 as string = Path.GetFileName ( lstrFileName )  '获得原名
  lstrFileName=now()
  lstrFileName=replace(lstrFileName,"-","")
  lstrFileName=replace(lstrFileName,":","")
  lstrFileName=replace(lstrFileName," ","")
  'lstrFileName=lstrFileName+"."
  lstrFileName=lstrFileName & right(Path.GetFileName ( lstrFileName111 ),len(Path.GetFileName ( lstrFileName111 ))-(instr(Path.GetFileName ( lstrFileName111 ),"."))+1)
  else
  lstrFileName = Path.GetFileName ( lstrFileName )
  end if
   ' 去掉目录信息,返回文件名称

  ' 判断上传目录是否存在,不存在就建立
  If ( not Directory.Exists ( lstrFileFolder ) ) Then
   Directory.CreateDirectory ( lstrFileFolder )
  End If

   '上传文件到服务器
  lstrFileNamePath = lstrFileFolder & lstrFileName
  lstrFileNamePath_1 = lstrFileFolder_1 & lstrFileName
   ' 得到上传目录及文件名称
  loFile.PostedFile.SaveAs ( lstrFileNamePath )

   ' 获得并显示上传文件的属性
  FileName.Text = lstrFileName
   ' 获得文件名称
  FileType.Text = loFile.PostedFile.ContentType
   ' 获得文件类型
  FileLength.Text = cStr ( loFile.PostedFile.ContentLength )
   ' 获得文件长度
  FileUploadForm.visible = false
  AnswerMsg.visible = true
   ' 显示上传文件属性
  AddTodb()
  End sub

'添加记录信息到数据库,可以不要这步。
sub AddToDB()
Dim MyConnection As SQLConnection = New SQLConnection (ConfigurationSettings.AppSettings("ConnStr"))
  Dim InsertCmd As String = "insert into chaoqi (title,filepath) values (@title,@filepath)"
  Dim MyCommand As SqlCommand = new SqlCommand(InsertCmd, MyConnection)

  MyCommand.Parameters.Add(New SqlParameter("@title", SqlDbType.NVarChar, 50))
  MyCommand.Parameters("@title").Value = title.value
  MyCommand.Parameters.Add(New SqlParameter("@filepath", SqlDbType.NVarChar, 50))
  MyCommand.Parameters("@filepath").Value = lstrFileNamePath_1
  MyCommand.Connection.Open()
  Try
  MyCommand.ExecuteNonQuery()
  Message.InnerHtml = "已添加记录
" & InsertCmd.ToString()
  Catch Exp As SQLException
  If Exp.Number = 2627
  Message.InnerHtml = "错误:已存在具有相同主键的记录"
  Else
  Message.InnerHtml = "错误:未能添加记录,请确保正确填写了字段"
  End If
  Message.Style("color") = "red"

  End Try

  MyCommand.Connection.Close()
end sub




上传文件




RM method = "post" enctype = "multipart/form-data" runat = "server">
 


 


 

  超期记录文件上传(excel文件)

  请输入该文件要显示的名称:

 

  请选择上传到服务器的文件:

  匹配类型:

  随机生成文件名(无重复):
 
  使用原名(若重复则覆盖):
 
 



 
请输入上传到服务器的目录名称:【可以自定义上传目录,形式如:upload_1,将新建一个upload_1目录,请确定您有上传到此目录的权限。当前程序目录:

 

   




 文件上传完成

 成功上传

 文件大小 字节
 文件类型

5秒之后自动返回....



 

  if (elemLevel2.style.display == 'none')
  {
  elemLevel2.style.display = '';
  if (elemSrc.usesGlyph == '1')
  elemSrc.innerHTML = '6';
  }
  else {
  elemLevel2.style.display = 'none';
  if (elemSrc.usesGlyph == '1')
  elemSrc.innerHTML = '4';
  }
}


最后演示如下:
2003-9-9113070.gif" align=baseline border=0>


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752019/viewspace-982699/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10752019/viewspace-982699/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值