VB.NET上传附件代码
'附件添加 按钮 点击事件 吴翰哲 2013年7月23日 16:53:19
Protected Sub BtnAddFile_Click(ByVal sender As Object, ByVal e As EventArgs) Handles BtnAddFile.Click
Try
Dim sysConfigDB As New SysConfigDB
Dim dr As DataRow = sysConfigDB.getItemByName("MaxFileSize")
Dim maxFileSize As Integer
If dr("ItemValue").ToString() = "" Or IsNumeric(dr("ItemValue").ToString()) = False Then
Dim returnVal As Integer = sysConfigDB.update("MaxFileSize", "4")
If returnVal < 1 Then
Exit Sub
End If
End If
dr = sysConfigDB.getItemByName("MaxFileSize")
maxFileSize = Integer.Parse(dr("ItemValue").ToString())
Dim strFlag As String If Me.UP_FILE.PostedFile.ContentLength > 0 Then
If Me.UP_FILE.PostedFile.ContentLength > (maxFileSize * 1000000) Then
'errMsg.Text = "附件大于4兆,无法上传"
lblError.Text = "附件大于" & (maxFileSize) & "兆,无法上传"
Exit Sub
End If
strFileName = Me.UP_FILE.PostedFile.FileName
strFileName = strFileName.Substring(strFileName.LastIndexOf("\") + 1) '先上传文件
objFile1.FileLength = CStr(Me.UP_FILE.PostedFile.ContentLength) strFlag = Upload3(2, Me.UP_FILE)
If strFlag = "" Then
lblError.Text = "附件保存失败!"
Exit Sub
Else
'If FileName = "" Then
'FileName = objFile1.FileName
'Else
' FileName = FileName + ";" + objFile1.FileName
'End If If OraFileName = "" Then
OraFileName = strFileName
Else
OraFileName = OraFileName + ";" + strFileName
End If
'单一上传文件,不支持一次批量上传
BtnAddFile.Visible = False
UP_FILE.Visible = False
'绑定drp
Dim ditem As New ListItem(strFileName, objFile1.FileName)
DropFiles.Items.Add(ditem)
ViewState("upSucess") = "upSucess"
lblError.Text = ""
End If
End If '下来判断是否是“更新文档”,来决定是否要添加到SQL 中去 Catch ex As IO.IOException
Throw New Exception(ex.InnerException.Message + ex.Message)
Catch ex As Exception
Throw New Exception(ex.Message)
End Try
End Sub '得到保存附件的路径及文件名
Public Overridable Function rootPath3() As String If IsNothing(ViewState.Item("rootPath")) Then
rootPath3 = Server.MapPath(Context.Request.ApplicationPath) & "\File\PaperOfTeacherFile\"
Try
If Not System.IO.Directory.Exists(rootPath3) Then
System.IO.Directory.CreateDirectory(rootPath3)
End If Catch ex As IO.IOException Throw New AppException("无法上传文件!可能是由于用户没有创建文件夹的权限。", ex)
Exit Function
End Try ViewState.Add("rootPath3", rootPath3)
Else
rootPath3 = ViewState.Item("rootPath3")
End If
End Function Public Overridable Function Upload3(ByVal Type As Integer, ByVal Up_File As HtmlInputFile) As String
'创建和更新都只用这个方法,这样可以不用判断是那种情况 If Up_File Is Nothing Then
Return 0 '没有选择上传文件
End If Dim Upfile As HttpPostedFile = Up_File.PostedFile
'********************保存文件到指定的文件夹下***********************
If Not IsNothing(Upfile) Then
If String.IsNullOrEmpty(Upfile.FileName) Then
lblError.Text = "请选择附件后再点‘下一步’!"
Return String.Empty
End If Dim nam As String = System.IO.Path.GetFileName(Upfile.FileName.Trim)
If nam.LastIndexOf(".") < 0 Then
lblError.Text = "请点击‘浏览’来选择附件!"
Return String.Empty
End If '文件名全名:为了防止多人同时上传文件,当前时间末尾加上一个随机数。
Dim newFileName As String = Date.Now.Ticks.ToString & CStr(Int((6 * Rnd()) + 1)) & System.IO.Path.GetExtension(nam) '取得文件名扩展名 '文件保存到 /file/Bord/时间/ 目录下,文件名为上传时间+随机数+文件类型 Upfile.SaveAs(Me.rootPath3 & newFileName)
ViewState("FileName") = newFileName
FileName = newFileName
Return newFileName
End If Return ""
End Function '附件删除按钮 点击事件 吴翰哲 2013年7月25日 10:51:43
Protected Sub btnDelFile_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnDelFile.Click
If DropFiles.Items.Count > 0 Then Dim delFileName As String
delFileName = DropFiles.SelectedItem.Value
'Me.DropFiles.Items.Remove(DropFiles.SelectedItem)
Dim delFileobj As New FileUploadOutline
'delFileobj.DeleteOldFile(delFileName)
'delFileobj.DelFileinSQL(LabelMessageID.Text, delFileName) Try
Dim delStr As String = delFileobj.DeleteOldFile3(delFileName) If delStr <> "ok" Then
lblError.Text = "删除文件时有错误发生,删除失败!"
Exit Sub
End If
Dim rint As Integer = delFileobj.DelFileinSQL3(DropFiles.SelectedItem.Text, DropFiles.SelectedValue)
If rint <> 1 Then
lblError.Text = "请确定已上传文件,删除失败!"
lblSucess.Text = ""
Exit Sub
End If
Catch ex As IO.IOException
Throw New AppException("删除文件失败可能是由于用户没有创建文件夹的权限。", ex)
Exit Sub
End Try
ViewState("attnum") = ViewState("attnum") - 1
Me.DropFiles.Items.Remove(DropFiles.SelectedItem)
lblSucess.Text = "删除附件成功"
lblError.Text = ""
BindRptFile()
UP_FILE.Visible = False
BtnAddFile.Visible = False
'Btnupdate_Click(sender, e)
End If
End Sub Public Overridable Function DeleteOldFile3(ByVal FileName As String) As String
If Not FileName Is Nothing Then
If System.IO.File.Exists(Server.MapPath(Context.Request.ApplicationPath) & "\File\PaperOfTeacherFile\" & FileName) Then
System.IO.File.Delete(Server.MapPath(Context.Request.ApplicationPath) & "\File\PaperOfTeacherFile\" & FileName)
Return "ok"
End If
End If
Return ""
End Function
VB.NET上传附件代码的更多相关文章
- java上传附件,批量下载附件(一)
上传附件代码:借助commons-fileupload-1.2.jar package com.str; import java.io.BufferedInputStream;import java. ...
- wordpress多站点环境设置上传附件大小
多站点环境更改上传附件大小: php.ini post_max_size = 8M upload_max_filesize = 10M 另外,后台域名管理中设置/网络设置/可以设置上传文件大小. 代码 ...
- jquery 通过ajax FormData 对象上传附件
之前上传附件都是用插件,或者用form表单体检(这个是很久以前的方式了),今天突发奇想,自己来实现附件上传,具体实现如下 html: <div> 流程图: <input id=& ...
- Discuz! X论坛上传附件到100%自动取消上传的原因及解决方案
最近接到一些站长的反馈,说论坛上传附件,到100%的时候自己取消上传了.经查是附件索引表pre_forum_attachment表的aid字段自增值出现了问题,导致程序逻辑返回的aid值实际为一个My ...
- Discuz模拟批量上传附件发帖
简介 对于很多用discuz做资源下载站来说,一个个上传附件,发帖是很繁琐的过程.如果需要批量上传附件发帖,就需要去模拟discuz 上传附件的流程. 模拟上传 discuz 附件逻辑 dz附件储存在 ...
- 修改WordPress中上传附件2M大小限制的方法/php+iis上传附件默认大小修改方法
在服务器上架设好WordPress后,使用过程中发现,上传附件大小有2M的限制 话说服务器就是本机,可以直接把文件拖到附件存储文件夹下,然后在需要附件的地方引用链接 可是这种落后的方法终究不是办法,还 ...
- Dynamic CRM 2013学习笔记(十三)附件上传 / 上传附件
上传附件可能是CRM里比较常用的一个需求了,本文将介绍如何在CRM里实现附件的上传.显示及下载.包括以下几个步骤: 附件上传的web页面 附件显示及下载的附件实体 调用上传web页面的JS文件 实体上 ...
- JQuery Uplodify上传附件(同一个页面多个uplodify控件解决方案)
功能描述:实现同一页面中多个不同附件的上传保存,且做到最大程度的减少代码修改量(最大程度的公用),为了方便实现垃圾数据和垃圾文件的处理,项目采用临时文件夹的方式:即:文件自动上传先保存到临时文件夹下, ...
- discuz 模拟批量上传附件发帖
discuz 模拟批量上传附件发帖 简介 对于很多用discuz做资源下载站来说,一个个上传附件,发帖是很繁琐的过程.如果需要批量上传附件发帖,就需要去模拟discuz 上传附件的流程. 插件地址 h ...
随机推荐
- iis 应用程序池看不到 .net framework 4.0
我的情况是,先配置了iis,然后再安装.net framework 4.0 进去设置应用程序池的时候,没有找到 .net framework 4.0 ,经过一番尝试,无效,最后无奈重启. 好了.
- VBA_Excel_教程:变量,数组
Sub testVar() '变量 Dim strT1 As String strT1 = "A" '常量[加不加类型都可以] Const strT2 As String = &q ...
- HTC ONE里面一个非常奇怪的问题。。。调用kSOAP出错
也是在某统计网站上看到了我们的APP爆出了这么一个bug: java.lang.NoSuchFieldError: No instance field headerOut of type [Lorg/ ...
- mybaties中在xml中map添加一个list中的判断
if (uIds.size() > 0) { map.put("uIds", uIds); } else { map.put("uIds", null); ...
- Excel—“撤销工作表保护密码”的破解并获取原始密码
您是否遇到过这样的情况:您用Excel编制的报表.表格.程序等,在单元格中设置了公式.函数等,为了防止其他人修改您的设置或者防止您自己无意中修改,您可能会使用Excel的工作表保护功能,但时间久了保护 ...
- SQLite 命令
在shell下直接敲 sqlite3 进入sqlite命令行模式下(CLP的shell模式,CLP是sqlite3的命令行程序) sqlite3 -help (注意有空格)显示命令行模式下,sqli ...
- java, poi, excel
工作需要用java操作Excel,现在网上搜索了一下,决定选取POI包来操作.pom内容如下: <dependency> <groupId>org.apache.poi< ...
- Python自动化 【第六篇】:Python基础-面向对象
目录: 面向过程VS面向对象 面向对象编程介绍 为什么要用面向对象进行开发 面向对象的特性:封装.继承.多态 面向过程 VS 面向对象 面向过程编程(Procedural Programming) ...
- 《深入理解Nginx》阅读与实践(二):配置项的使用
前文链接:<深入理解Nginx>阅读与实践(一):Nginx安装配置与HelloWorld HelloWorld的完成意味着已经踏入了nginx的大门,虽然很振奋人心,但在编写中仍有很多疑 ...
- JAXB 2.0 API is being loaded from the bootstrap classloader
在使用webservice,mule esb等需要jaxb的项目里经常会出现 JAXB 2.0 API is being loaded from the bootstrap classloader这个 ...