过路的帮俺看看,路过有分
我数据库字段 "多附件上传地址 " 中形式如下:
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
截成数组,做个循环
[解决办法]
我也路过,帮顶一下。
[解决办法]
定義一個字符串數組,然後把路徑存進數組,如:
filepath=filepath.Substring(0,filepath.Length-1)//去掉最末尾的分號
string[] strpaths = filepath.Split( '; ');//把分號之間的路徑取出來放到數組裡
然後用一個循環輸出。
[解决办法]
我虽然路过,但很想帮你,不过还是没看懂你要表达的意思。
[解决办法]
string path= "A:/aaa;B:/bbb;C:/ccc ";
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新开窗口,然后把路径逐个传给新窗口下载。
[解决办法]
把文件列出来让用户去选择吧,点一个连接就全都下载下来不太好吧!
要不就全部打包,之后下载下一个压缩包吧!呵呵!
[解决办法]
路过
[解决办法]
ydsunny(小强) ( ) 信誉:100 Blog 2007-01-05 17:01:28 得分: 0
定義一個字符串數組,然後把路徑存進數組,如:
filepath=filepath.Substring(0,filepath.Length-1)//去掉最末尾的分號
string[] strpaths = filepath.Split( '; ');//把分號之間的路徑取出來放到數組裡
然後用一個循環輸出。
-----
顶这个
------解决方案--------------------
哇 我是小菜鸟 不会 帮顶....
[解决办法]
JF。
[解决办法]
JF,Ding
[解决办法]
漂過......
[解决办法]
帮你顶
[解决办法]
string aaa = "A:/aaa;B:/bbb;C:/ccc ";
截成数组,做个循环
string [] strAddress = aaa.slipt( "; ");
[解决办法]
严重同意楼上的方法,要求下截的数组的长度,就可以做个循环了
[解决办法]
偶还同挣过分呢
[解决办法]
string aaa = "A:/aaa;B:/bbb;C:/ccc ";
截成数组,做个循环
string [] strAddress = aaa.slipt( "; ");
-----------------
同意!
jf
[解决办法]
UP
[解决办法]
jf 同意 ydsunny(小强) 的做法
[解决办法]
路过~~
[解决办法]
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> ");
}
[解决办法]
路过
[解决办法]
路过
[解决办法]
路过
[解决办法]
.net不会 路过的
[解决办法]
我很想帮你,明白后就告诉你
[解决办法]
.NET开发俱乐部给IT工作者提供交流平台,实现资源互补,共同进步!欢迎加入20152522
.NET开发俱乐部给IT工作者提供交流平台,实现资源互补,共同进步!欢迎加入20152522
.NET开发俱乐部给IT工作者提供交流平台,实现资源互补,共同进步!欢迎加入20152522
.NET开发俱乐部给IT工作者提供交流平台,实现资源互补,共同进步!欢迎加入20152522
.NET开发俱乐部给IT工作者提供交流平台,实现资源互补,共同进步!欢迎加入20152522
.NET开发俱乐部给IT工作者提供交流平台,实现资源互补,共同进步!欢迎加入20152522
.NET开发俱乐部给IT工作者提供交流平台,实现资源互补,共同进步!欢迎加入20152522
.NET开发俱乐部给IT工作者提供交流平台,实现资源互补,共同进步!欢迎加入20152522
.NET开发俱乐部给IT工作者提供交流平台,实现资源互补,共同进步!欢迎加入20152522
.NET开发俱乐部给IT工作者提供交流平台,实现资源互补,共同进步!欢迎加入20152522
[解决办法]
晃来晃去