上传和下载附件功能

HTML上传部分
文件名:<asp:TextBox ID="tbFileName" runat="server" Width="150px"></asp:TextBox>文件(80M以内):
                                <asp:FileUpload ID="FileUpload2" runat="server" />
                                <asp:Button ID="Button1" runat="server" CssClass="buttoncss" Text="上传" OnClick="Button1_Click" />

protected void Button1_Click(object sender, EventArgs e)
        {
            if (FileUpload2.HasFile && ViewState["pid"] != null)
            {
                string path = Server.MapPath("ATT");
                //创建目录
                string pid = ViewState["pid"].ToString();
                if (!Directory.Exists(path + "/" + pid))
                {
                    Directory.CreateDirectory(path + "/" + pid);
                }
                path += "/" + pid;
                string filename = "";
                if (!string.IsNullOrEmpty(tbFileName.Text))
                {
                    string hz = FileUpload2.FileName.Substring(FileUpload2.FileName.IndexOf(‘.‘), FileUpload2.FileName.Length - FileUpload2.FileName.IndexOf(‘.‘));
                    filename = tbFileName.Text.Trim() + hz;
                }
                else
                {
                    string Extension = System.IO.Path.GetExtension(FileUpload2.FileName).ToLower();
                    string FileName = FileUpload2.FileName.Substring(0, FileUpload2.FileName.IndexOf(Extension));
                    FileName += DateTime.Now.ToString("yyyyMMddhhmmss");
                    filename = FileName + Extension;
                }
                try
                {
                    FileUpload2.SaveAs(path + "/" + filename);
                    //保存信息
                    AttachmentModel uam = new AttachmentModel();
                    uam.AttFileName = filename.Substring(0, filename.IndexOf(‘.‘));
                    uam.ProjectId = Convert.ToInt32(pid);
                    uam.AttPath = "ATT/" + pid + "/" + filename;
                    LoginUserInfoModel lum = new LoginUserInfoModel();
                    lum = (LoginUserInfoModel)Session["LoginUserInfoModel"];
                    uam.RecordAccountNoID = lum.LoginUserID;
                    if (IPB.SaveATT(uam))
                    {
                        Page.RegisterClientScriptBlock("TS", "<script>jError(‘上传成功‘, { TimeShown: 1000, VerticalPosition: ‘center‘ });;</script>");
                        ShowControl();
                    }
                    else
                    {
                        Page.RegisterClientScriptBlock("TS", "<script>jError(‘上传失败‘, { TimeShown: 1000, VerticalPosition: ‘center‘ });;</script>");
                    }

                }
                catch (Exception ex)
                {
                    throw ex;
                }

            }
            else
            {
                Page.RegisterClientScriptBlock("TS", "<script>jError(‘请选择文件‘, { TimeShown: 1000, VerticalPosition: ‘center‘ });;</script>");
            }
        }

绑定显示上传成功的附件:

private void BindATT(string pid)
        {
            DataTable dt = IPB.GetATT(pid);
            string html = "";
            if (dt != null && dt.Rows != null && dt.Rows.Count > 0)
            {
                foreach (DataRow dr in dt.Rows)
                {
                    html += "<div style=‘float:left;margin-top:10px;clear:both;‘> <a href=‘" + GetLink(dr["AttPath"].ToString()) + "‘ target=‘_blank‘ style=‘color:Blue;‘>" + dr["AttFileName"].ToString() + " </a>";

                    html += "<a href=\"javascript:void(0);\" onclick=\"DelAtt(‘" + dr["id"].ToString() + "‘,‘" + HelpBLL.Encode(pid) + "‘);\" style=‘ font-size:12px;‘>删除</a><br/>";

                    html += "</div>";
                }
            }
            else
            {
                html = "<p style=‘color:red;‘>暂无附件</p>";
            }
            LAttHtml.Text = html;
        }
        /// <summary>
        /// 获取下载URL
        /// </summary>
        /// <param name="url"></param>
        /// <returns></returns>
        public static string GetLink(string url)
        {
            string str = "Download.aspx?FileName=" + HttpUtility.UrlEncode(url) + "";
            return str;
        }

 
Download.aspx 只有后台代码:
protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                ResponseFile(HttpUtility.UrlDecode(Request.QueryString["FileName"]));
            }
        }
        public void ResponseFile(string fileName)
        {
            try
            {
                String FullFileName = HttpContext.Current.Server.MapPath(fileName);
                FileInfo DownloadFile = new FileInfo(FullFileName);
                Response.Clear();
                Response.Expires = 0;
                Response.Buffer = true;
                Response.Charset = "utf-8";
                Response.ContentEncoding = System.Text.Encoding.UTF8;
                Response.ContentType = "application/octet-stream";
                Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(DownloadFile.FullName, System.Text.Encoding.UTF8));
                Response.AppendHeader("Content-Length", DownloadFile.Length.ToString());
                Response.TransmitFile(DownloadFile.FullName);
                Response.End();
            }
            catch
            {

            }

        }

上传和下载附件功能,布布扣,bubuko.com

时间: 2024-10-24 04:52:41

上传和下载附件功能的相关文章

[Android中级]使用Commons-net-ftp来实现FTP上传、下载的功能

本文属于学习分享,如有雷同纯属巧合 利用业余时间.学习一些实用的东西,假设手又有点贱的话.最好还是自己也跟着敲起来. 在android上能够通过自带的ftp组件来完毕各种功能.这次是由于项目中看到用了Commons-net-ftp的包完毕的,所以就以此试试手. 首先,代码中有所參考借鉴了:Android中使用Apache common ftp进行下载文件 博文 这次是分享关于在android上使用FTP协议(文件传输协议)进行文件的下载.上传的功能.我们能够先了解一下,FTP和HTTP一样都是I

springMVC上传和下载附件

上传: 导入需要的jar包:Spring MVC类库 + 文件上传下载需要的JAR包,图中A处为文件上传下载需要的JAR包,其余为Spring MVC类库. 构建领域模层:model层和control层.view层 FileController: 1 package com.controller.system; 2 3 import java.io.FileOutputStream; 4 import java.io.OutputStream; 5 import java.text.Simple

linux下实现ftp匿名用户的上传和下载文件功能

1.配置/etc//vsftpd/vsftpd.conf 文件如下: 打开文件,改变如下选项,如果文件中没有该选项,需要自己手动编写该选项 write_enable=YES anonymous_enable=YES anon_other_write_enable=YES anon_mkdir_write_enable=YES anon_upload_enable=YES 2.以上配置仅仅是完成了vsftp.conf的ftp允许anonymous的上传设置,还需要对相应的ftp上传用的文件夹设置:

基于hap的文件上传和下载

序言 现在,绝大部分的应用程序在很多的情况下都需要使用到文件上传与下载的功能,在本文中结合hap利用spirng mvc实现文件的上传和下载,包括上传下载图片.上传下载文档.前端所使用的技术不限,本文重点在于后端代码的实现.希望可以跟随我的一步步实践,最终轻松掌握在hap中的文件上传和下载的具体实现. 案例 1.  数据库设计 表结构 SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for

基于asp.net 的文件上传和下载~~~转

基于asp.net 的文件上传和下载 摘要: 文件的上传和下载是网络中非常重要的两种应用, 本文介绍了使用asp.net 控件实现文件上传的基本方法.解决了当上传大文件时出现各种问题, 并给出了几种解决方案和技巧.另外, 下载文件用二进制读写的方式实现. 1 引言          文件的上传和下载是网络中非常重要的两种应用.其实现方法主要有FTP 方式和HTTP 方式两种, FTP( File Transfer Protocol)是指文件传输协议, 主要用来在网络上传输文件.这种方式虽说文件传

【php】文件的上传与下载

一. 生活中常见的地方: a) 例如邮箱.空间.文库.百度云.微爱等地方,都可以看到文件的上传和下载的应用,因此,上传和下载的功能非常重要!二. PHP当中的文件上传和下载 a) 我们需要进行一些设置,来使我们的表单具有提交文件的功能! b) 客户端的设置: i. 其实就是表单的设置: 1. input表单项中的type属性值必须是file类型 2. form表单头部需要添加一个通行证:enctype="multipart/form-data",含义为让服务器认识到我们要在这个表单中上

面试题:编写上传和下载文件测试用例

编写上传和下载文件测试用例 走火入魔系列之:上传|下载文件 一.题目: 如何编写上传和下载文件测试用例 1. 上传功能测试点 假如:我们要调试上传功能,前端代码为: <!DOCTYPE html> <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <

JavaWeb之文件上传和下载

在如今的互联网时代,人们越来越喜欢将自己的数据存放到互联网上,于是便诞生了很多类型的软件,比如360网盘,百度网盘,云盘之类的.所以说,文件上传和下载的功能是现在非常主流的一个功能,应用十分广泛. 那现在,我们就来学习一下,在web中,如何去实现文件上传和下载! 实现web开发中的文件上传功能,需完成如下二步操作: 在web页面中添加上传输入项 在servlet中读取上传文件的数据,并保存到服务器硬盘中. 如何在web页面中添加上传输入项? 标签用于在web页面中添加文件上传输入项,设置文件上传

C#实现FTP文件的上传、下载功能、新建目录以及文件的删除

本来这篇博文应该在上周就完成的,可无奈,最近工作比较忙,没有时间写,所以推迟到了今天.可悲的是,今天也没有太多的时间,所以决定给大家贴出源码,不做详细的分析说明,如果有不懂的,可以给我留言,我们共同讨论. using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Security.Cryptography; using Sys