'附件添加 按钮 点击事件  吴翰哲 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上传附件代码的更多相关文章

  1. java上传附件,批量下载附件(一)

    上传附件代码:借助commons-fileupload-1.2.jar package com.str; import java.io.BufferedInputStream;import java. ...

  2. wordpress多站点环境设置上传附件大小

    多站点环境更改上传附件大小: php.ini post_max_size = 8M upload_max_filesize = 10M 另外,后台域名管理中设置/网络设置/可以设置上传文件大小. 代码 ...

  3. jquery 通过ajax FormData 对象上传附件

    之前上传附件都是用插件,或者用form表单体检(这个是很久以前的方式了),今天突发奇想,自己来实现附件上传,具体实现如下 html: <div>   流程图: <input id=& ...

  4. Discuz! X论坛上传附件到100%自动取消上传的原因及解决方案

    最近接到一些站长的反馈,说论坛上传附件,到100%的时候自己取消上传了.经查是附件索引表pre_forum_attachment表的aid字段自增值出现了问题,导致程序逻辑返回的aid值实际为一个My ...

  5. Discuz模拟批量上传附件发帖

    简介 对于很多用discuz做资源下载站来说,一个个上传附件,发帖是很繁琐的过程.如果需要批量上传附件发帖,就需要去模拟discuz 上传附件的流程. 模拟上传 discuz 附件逻辑 dz附件储存在 ...

  6. 修改WordPress中上传附件2M大小限制的方法/php+iis上传附件默认大小修改方法

    在服务器上架设好WordPress后,使用过程中发现,上传附件大小有2M的限制 话说服务器就是本机,可以直接把文件拖到附件存储文件夹下,然后在需要附件的地方引用链接 可是这种落后的方法终究不是办法,还 ...

  7. Dynamic CRM 2013学习笔记(十三)附件上传 / 上传附件

    上传附件可能是CRM里比较常用的一个需求了,本文将介绍如何在CRM里实现附件的上传.显示及下载.包括以下几个步骤: 附件上传的web页面 附件显示及下载的附件实体 调用上传web页面的JS文件 实体上 ...

  8. JQuery Uplodify上传附件(同一个页面多个uplodify控件解决方案)

    功能描述:实现同一页面中多个不同附件的上传保存,且做到最大程度的减少代码修改量(最大程度的公用),为了方便实现垃圾数据和垃圾文件的处理,项目采用临时文件夹的方式:即:文件自动上传先保存到临时文件夹下, ...

  9. discuz 模拟批量上传附件发帖

    discuz 模拟批量上传附件发帖 简介 对于很多用discuz做资源下载站来说,一个个上传附件,发帖是很繁琐的过程.如果需要批量上传附件发帖,就需要去模拟discuz 上传附件的流程. 插件地址 h ...

随机推荐

  1. Linux free命令详解(转)

    解释一下Linux上free命令的输出.(转自:http://www.cnblogs.com/coldplayerest/archive/2010/02/20/1669949.html) 下面是fre ...

  2. Electron实战:创建ELectron开发的window应用安装包

    前言:研究electron自动更新的时候,在electron的官方文档auto-updater 中,提到了在几个平台mac,Linux,windows下electron 的自动更新方法,其中winds ...

  3. 异步数据库查询 Z

    Introduction Microsoft .NET 4.5 introduced new "async and await" methods to provide an eas ...

  4. Gridview导出EXCEL(多页) z

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  5. 计算机视觉:关于视觉算法源码中常出现的imageLib库的使用指南

    1.ReadImage(CImage &im, char* path)/ WriteImage(CImage &im, char* path) (1)将im强制转换为CByteImag ...

  6. SAMEORIGIN

    http://www.css88.com/archives/5141 Response.AppendHeader("X-Frame-Options", "SAMEORIG ...

  7. js调用java代码返回解决方案

    版权声明:本文为楼主原创文章,未经楼主允许不得转载,如要转载请注明来源. 今天封装一个加密标签,遇到一个问题,我需要对页面上的数据调用java后台代码进行解密,而标签里只能通过js获取到数据,所以就遇 ...

  8. C++ malloc new 的区别

    1,malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符.它们都可用于申请动态内存和释放内存. malloc实现了在堆内存管理中进行按需分配的机制,但是它不提供在C ...

  9. 生成API文档的软件

    SandCastle:http://shfb.codeplex.com/SourceControl/latest#1952439 HTML Help:http://msdn.microsoft.com ...

  10. 网络存储技术介绍(2) ( based on zt)

    http://www.educity.cn/tx/429084.html 互联网技术DAS.NAS和SAN存储方案的比较 按照设备位置和接入方式,磁盘存储可以分为内置存储和外挂存储,外挂存储又分为直连 ...