我数据库字段 "多附件上传地址" 中形式如下:
A:/aaa;B:/bbb;C:/ccc;
下载的时候怎么办? public string FormatString(string str)
{
str = str.Replace(" ", " ");
str = str.Replace("<", "<");
str = str.Replace(">", ">");
str = str.Replace('\n'.ToString(), "<br>");
return str;
}
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(); 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();
}
}我这个只能下载如:A:/aaa 这样形式的单个附件,请问我要怎么改?
拜谢答者~~
A:/aaa;B:/bbb;C:/ccc;
下载的时候怎么办? public string FormatString(string str)
{
str = str.Replace(" ", " ");
str = str.Replace("<", "<");
str = str.Replace(">", ">");
str = str.Replace('\n'.ToString(), "<br>");
return str;
}
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(); 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();
}
}我这个只能下载如:A:/aaa 这样形式的单个附件,请问我要怎么改?
拜谢答者~~
解决方案 »
- [!版主急!] (FTP上传) 为何函数用 传入的路径在 服务器上找文件???
- 求获取html中table中数据的正则表达式
- HttpRequest问题,可以调试了,可是总是出错,请问错在哪里啊
- 怎样显示DataGrid的总条目
- gridview问题
- VS.NET2003中,如何在一个项目(应用程序)中添加一个位于其子目录中的WEB窗体文件?
- 怎么从DetailsView中读取一行数据,并且在页面上显示出来?
- 请高手指点!一个和DataGrid的问题。
- 水晶报表中的旬小计怎么做?
- 表里明明有记录,为什么一条一不显示?
- 多对多的表,进来看看,给
- 在asp.net如何实现好似ppstrem那样的功能在线播放
截成数组,做个循环
我路过,所以有分
呵呵,近来被它难了好久,明天下班之前一定结贴
比如说:我一次上传了3个文件的时候在数据库中会生成3行纪录:
A:/aaa;
A:/aaa;B:/bbb;
A:/aaa;B:/bbb;C:/ccc;
而我想要的是每次上传在数据库只生成一行纪录,如:
A:/aaa;B:/bbb;C:/ccc;
------------------------------------
你在遍历到最后一个附件的时候插入数据库的记录是正确的,推测你在循环内部作了插入,实际上只需要构造出路径串(A:/aaa;B:/bbb;C:/ccc;)在循环外部插入即可,可以看看你的数据库操作的代码这是刚刚那个“多附件上传问题”你的回答,
非常感谢你,现在这个下载犯难了,请再帮帮我
string[] strpaths = filepath.Split(';');//把分號之間的路徑取出來放到數組裡然後用一個循環輸出。
我虽然路过,但很想帮你,不过还是没看懂你要表达的意思。
正如楼上所说:我想将要下载文件列出,然后由用户选择下载
string s=";"
char[] p=s.ToCharArray();
string b[]=path.Split(p);
for(int i=0;i<b.length;i++)
{
插入语句 什么 insert into A values(b[i].Tostring());
}
系统将每个附件创建一个超链,用户点击后下载对应项,而不是只提供一个“下载全部”的按钮
一股脑的将附件全部下载。一个html页,指定了contenttype后只提供单个文件的下载,如果要一次提供多个附件那就要开多个窗口,不建议这么做,如果需求一定要这样,那么可以把路径组合输出到页面,用javascript新开窗口,然后把路径逐个传给新窗口下载。
定義一個字符串數組,然後把路徑存進數組,如:filepath=filepath.Substring(0,filepath.Length-1)//去掉最末尾的分號
string[] strpaths = filepath.Split(';');//把分號之間的路徑取出來放到數組裡然後用一個循環輸出。
-----
顶这个
截成数组,做个循环
string [] strAddress = aaa.slipt(";");
截成数组,做个循环
string [] strAddress = aaa.slipt(";");
-----------------
同意!
jf
{
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();
}
}
}
string [] strAddress = aaa.slipt(";");
foreach(string str in strAddress)
{
this.response.write("<a href="+str+">"+str+"</a>");
}
我很想帮你,明白后就告诉你
呵呵
.NET开发俱乐部给IT工作者提供交流平台,实现资源互补,共同进步!欢迎加入20152522.NET开发俱乐部给IT工作者提供交流平台,实现资源互补,共同进步!欢迎加入20152522.NET开发俱乐部给IT工作者提供交流平台,实现资源互补,共同进步!欢迎加入20152522.NET开发俱乐部给IT工作者提供交流平台,实现资源互补,共同进步!欢迎加入20152522.NET开发俱乐部给IT工作者提供交流平台,实现资源互补,共同进步!欢迎加入20152522