zoukankan      html  css  js  c++  java
  • 上传和下载附件功能

    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
                {
    
                }
    
            }
  • 相关阅读:
    IT运维监控解决方案介绍
    Apdex——衡量服务器性能的标准
    服务器监控(包括性能指标与web应用程序)
    使用厂商MIB库查找设备OID值并实施监控的方法
    华为USG6550 MIB CPU MEM
    LInux下实时网络流量监控工具nload教程
    11gR2 集群(CRS/GRID)新功能—— SCAN(Single Client Access Name)
    如何实现网卡bond
    LeetCode(31)-Factorial Trailing Zeroes
    activiti自己定义流程之整合(五):启动流程时获取自己定义表单
  • 原文地址:https://www.cnblogs.com/PeaCode/p/3837727.html
Copyright © 2011-2022 走看看