ftp.Connect(ftpIp,ftpUserName,ftpUserPassword);
ftp.SetCurrentDirectory("/"+projectId +"/");
if(ftp.FileExist(filename)&&filename!="")
{
string fullFileName = "ftp://"+ftpUserName+":"+ftpUserPassword+"@"+ftpIp+"/"+projectId +"/"+filename;
FileStream MyFileStream = new FileStream( fileFullName,FileMode.CreateNew);//出错处
------------------
会提示不支持给定路径的格式。
是不是需要将filestream换成其他?
ftp.SetCurrentDirectory("/"+projectId +"/");
if(ftp.FileExist(filename)&&filename!="")
{
string fullFileName = "ftp://"+ftpUserName+":"+ftpUserPassword+"@"+ftpIp+"/"+projectId +"/"+filename;
FileStream MyFileStream = new FileStream( fileFullName,FileMode.CreateNew);//出错处
------------------
会提示不支持给定路径的格式。
是不是需要将filestream换成其他?
解决方案 »
- 关于Discuz! X 论坛和ASP.NET站进行用户整合实现单点登录
- 168分求助!关于TreeView实现右键菜单,并且通过菜单修改数据库
- 在线等一个配置问题
- 2.0,关于使用自定义控件时,控件所属的类的初始化问题。
- 求助ASP.NET2.0问题,关于使用Callback技术取服务器端数据
- StartIndex 不能小于 0。
- html文本中取纯文本
- 如何动态的显示或隐藏DataGrid中的一例和几例?
- 服务端的DropDownList,如何用C#语言,填加ITEMS,ITEMS要填加的东西包括text和value
- 数据为DataGrid导入Excel时如何有头有尾
- 求DataGrid关于事件的文章,最好是专题,谢谢。
- 关于NHibernate Many-to-Many
文件下载是单独写在一个csharp文件中的。而且要求隐藏文件的地址。
FtpStream ftpfs=ftp.OpenFile(filename,GenericRights.Read);
你先要用ftpfs的Read方法把数据流读入byte[]中
然后写入FileStream才行
Length <错误: 发生 {System.NotSupportedException} 类型的异常> long
不知怎么回事?
string filename="b.rar";
string fileextname=filename.Split('.')[filename.Split('.').Length-1];
string DEFAULT_CONTENT_TYPE = "application/unknown";
RegistryKey regkey,fileextkey;
string filecontenttype;
try
{
regkey=Registry.ClassesRoot;
fileextkey=regkey.OpenSubKey(fileextname);
filecontenttype=fileextkey.GetValue("Content Type",DEFAULT_CONTENT_TYPE).ToString();
}
catch
{
filecontenttype=DEFAULT_CONTENT_TYPE;
}
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(filename));
Response.ContentType=filecontenttype;
FtpSupport.FtpConnection conn=new FtpSupport.FtpConnection("localhost",@"ubishanghai\yzhu3","Abcd0.123");
conn.SetCurrentDirectory("/");
if(conn.FileExist(filename))
{
FtpSupport.FtpStream ftpfs=conn.OpenFile(filename,FtpSupport.GenericRights.Read);
byte [] buffer=new byte[10240];
int n=ftpfs.Read(buffer,0,buffer.Length);
while(n>0)
{
Response.BinaryWrite(buffer);
n=ftpfs.Read(buffer,0,buffer.Length);
}
ftpfs.Close();
}
}
我的例子是从注册表读取ContentType然后直接BinaryWrite的
byte [] buffer=new byte[10240];
如果你觉得下载慢可以适当增加buffer。