VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
12
返回列表 发新帖
楼主: saxonn

多附件上传形式,下载的时候怎么办?

[复制链接]

2

主题

10

帖子

10.00

积分

新手上路

Rank: 1

积分
10.00
 楼主| 发表于 2020-7-10 01:15:01 | 显示全部楼层
protected void Button1_Click(object sender, EventArgs e)
    {
        if (Request["id"] != null)
        {
            int id = Convert.ToInt32(Request["id"]);//转换为数字,防止sql注入

            SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString);
            conn.Open();
            adr = "select 附件上传地址 from Mail WHERE 邮件编号 = " + id;
            SqlCommand cmd = new SqlCommand(adr, conn);
            string path = cmd.ExecuteScalar().ToString();
            //取得路径
            filepath = FormatString(path.ToString()).ToString().Trim();
            filepath = filepath.Substring(0, filepath.Length - 1);//去掉最末尾的分號
            string[] strpaths = filepath.Split(';');//把分號之間的路徑取出來放到數組裡

            for (int i = 0; i < strpaths.Length; i++)
            {
                string Temp_filename = FormatString(path.ToString()).ToString();
                int pos = Temp_filename.LastIndexOf("\\") + 1;
                filename = Temp_filename.Substring(pos, Temp_filename.Length - pos).ToString();
                filename = HttpUtility.UrlEncode(System.Text.Encoding.UTF8.GetBytes(filename));

                Response.Clear();
                Response.ClearHeaders();
                Response.ClearContent();
                FileStream fs = new FileStream(filepath, FileMode.Open);
                long FileSize = fs.Length;
                byte[] Buffer = new byte[(int)FileSize];
                fs.Read(Buffer, 0, (int)fs.Length);
                fs.Close();
                Response.ContentType = "application/octe-stream";
                Response.AddHeader("content-disposition", "attachment;filename=" + filename);
                Response.Charset = "UTF-8";
                Response.ContentEncoding = System.Text.Encoding.UTF8;
                Response.BinaryWrite(Buffer);
                conn.Close();
            }
        }
    }
回复

使用道具 举报

2

主题

10

帖子

10.00

积分

新手上路

Rank: 1

积分
10.00
 楼主| 发表于 2020-7-10 09:30:01 | 显示全部楼层
错误是:不支持给定路径的格式。
回复

使用道具 举报

0

主题

4

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-7-11 12:45:01 | 显示全部楼层
string aaa = "A:/aaa;B:/bbb;C:/ccc";
string [] strAddress = aaa.slipt(";");
foreach(string str in strAddress)
{
  this.response.write("<a href="+str+">"+str+"</a>");
}
回复

使用道具 举报

0

主题

4

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-7-11 13:15:01 | 显示全部楼层
向数据库存储的时候你就应该存相对地址,绝对地址当然是web不支持的啦
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表