在本地VS测试的时候没有问题可以正常下载,
但是在客户机上测试的时候无法下载
下载文件的方法如下public String Download(string filePath, string fileName)
{
FtpWebRequest reqFTP;
try
{
FileStream outputStream = new FileStream(filePath + fileName, FileMode.Create);
reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI + fileName));
reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;
reqFTP.UseBinary = true;
reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
Stream ftpStream = response.GetResponseStream();
long cl = response.ContentLength;
int bufferSize = 2048;
int readCount;
byte[] buffer = new byte[bufferSize]; readCount = ftpStream.Read(buffer, 0, bufferSize);
while (readCount > 0)
{
outputStream.Write(buffer, 0, readCount);
readCount = ftpStream.Read(buffer, 0, bufferSize);
} ftpStream.Close();
outputStream.Close();
response.Close();
}
catch (Exception ex)
{
Insert_Standard_ErrorLog.Insert("FtpWeb", "Download Error --> " + ex.Message);
}
return "successful";
//我在这里测试返回值(在客户机上),测到所有的参数(ftpURI + fileName,filePath + fileName)都没有错,并且方法也有执行,就是没有下载到文件。
}
另注,方法在本人VS上调试的时候一点问题都没有的。只是在客户机上面行不能。IE的权限已经全开,加可信任站点。我接收方法的返回值得知方法也有执行到。方法是通过ajax来调用的,实在是不知道问题出在哪,跪求高手指点。。感激不尽
但是在客户机上测试的时候无法下载
下载文件的方法如下public String Download(string filePath, string fileName)
{
FtpWebRequest reqFTP;
try
{
FileStream outputStream = new FileStream(filePath + fileName, FileMode.Create);
reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI + fileName));
reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;
reqFTP.UseBinary = true;
reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
Stream ftpStream = response.GetResponseStream();
long cl = response.ContentLength;
int bufferSize = 2048;
int readCount;
byte[] buffer = new byte[bufferSize]; readCount = ftpStream.Read(buffer, 0, bufferSize);
while (readCount > 0)
{
outputStream.Write(buffer, 0, readCount);
readCount = ftpStream.Read(buffer, 0, bufferSize);
} ftpStream.Close();
outputStream.Close();
response.Close();
}
catch (Exception ex)
{
Insert_Standard_ErrorLog.Insert("FtpWeb", "Download Error --> " + ex.Message);
}
return "successful";
//我在这里测试返回值(在客户机上),测到所有的参数(ftpURI + fileName,filePath + fileName)都没有错,并且方法也有执行,就是没有下载到文件。
}
另注,方法在本人VS上调试的时候一点问题都没有的。只是在客户机上面行不能。IE的权限已经全开,加可信任站点。我接收方法的返回值得知方法也有执行到。方法是通过ajax来调用的,实在是不知道问题出在哪,跪求高手指点。。感激不尽
解决方案 »
- MVC中,如果在view中获取controller信息(action,id等值)
- 显示数据时候label和数据控件的选择问题求教
- html转mht文件出错!
- 请教:购物车,迁移匿名用户问题?
- 各位大侠,将.net2002版本下开发的项目升级至.net2005注意些什么
- 将对象引用设置到对象的实例????????
- 请教关于DropDownList和DataGrid配合使用的问题(在线等)
- 难呀!(高手一定要进来帮呀,在线等!!分数不够再加)
- 如何弹出一个页面验证用户,验证成功后又返回到原页面
- 50分哦,我把分类id放在一个idlist中每个id用逗号割开,如何查询idlist包含特定id的记录?
- 求‘办公文档管理系统’开题报告
- VS 2008 怎么连接oracle9i的数据库啊?
你可以验证下,把你的bufferSize设大点1024*64或者1024*128,你就可以看到,你的readcount每次都远远小于bufferSize
但是这样就可以下载文件。。
int readCount;
byte[] buffer = new byte[bufferSize]; readCount = ftpStream.Read(buffer, 0, bufferSize);
while (readCount > 0)
{
outputStream.Write(buffer, 0, readCount);
readCount = ftpStream.Read(buffer, 0, bufferSize);
}
继续期待。