返回信息流在下想从web服务器向文件服务器上传一个文件,web服务器为windowxpsp3,服务器为ubuntu2.6.1,支持utf8码,我已经做了编码转换,将文件名都改为utf8码了,可上传中文文件名文件时服务器端仍然显示为乱码。ftp上传代码如下,求帮!谢各位大牛
public bool fileUpload(FileInfo localFile, string ftpPath, string ftpFileName)
{
bool success = false;
FtpWebRequest ftpWebRequest = null;
FileStream localFileStream = null;
Stream requestStream = null;
try
{
string uri = ftpRootURL + ftpPath + ftpFileName;
//byte[] bytes = Encoding.UTF8.GetBytes(uri);
//uri = Encoding.UTF8.GetString(bytes);//转为utf8码
ftpWebRequest = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri));
ftpWebRequest.Credentials = new NetworkCredential(ftpUser, ftpPassword);
ftpWebRequest.UseBinary = true;
ftpWebRequest.KeepAlive = false;
ftpWebRequest.Method = WebRequestMethods.Ftp.UploadFile;
ftpWebRequest.ContentLength = localFile.Length;
int buffLength = 2048;
byte[] buff = new byte[buffLength];
int contentLen;
localFileStream = localFile.OpenRead();
requestStream = ftpWebRequest.GetRequestStream();
contentLen = localFileStream.Read(buff, 0, buffLength);
while (contentLen != 0)
{
requestStream.Write(buff, 0, contentLen);
contentLen = localFileStream.Read(buff, 0, buffLength);
}
success = true;
}
catch (Exception)
{
success = false;
}
finally
{
if (requestStream != null)
{
requestStream.Close();
}
if (localFileStream != null)
{
localFileStream.Close();
}
}
return success;
}
// <summary>
// 上传文件
// </summary>
// <param name="localPath">本地文件地址(没有文件名)</param>
// <param name="localFileName">本地文件名</param>
// <param name="ftpPath">上传到ftp的路径</param>
// <param name="ftpFileName">上传到ftp的文件名</param>
public bool fileUpload(string localPath, string localFileName, string ftpPath, string ftpFileName)
{
bool success = false;
try
{
FileInfo localFile = new FileInfo(localPath + localFileName);
if (localFile.Exists)
{
success = fileUpload(localFile, ftpPath, ftpFileName);
}
else
{
success = false;
}
}
catch (Exception)
{
success = false;
}
return success;
}
这是一条镜像帖。来源:北邮人论坛 / dot-net / #2598同步于 2010/12/29
该镜像源已超过 30 天没有更新,可能在源站已被删除。
dotNET机器人发帖
求助ASP.NET上传文件中文乱码问题
realerge
2010/12/29镜像同步2 回复
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
【 在 realerge 的大作中提到: 】
: 在下想从web服务器向文件服务器上传一个文件,web服务器为windowxpsp3,服务器为ubuntu2.6.1,支持utf8码,我已经做了编码转换,将文件名都改为utf8码了,可上传中文文件名文件时服务器端仍然显示为乱码。ftp上传代码如下,求帮!谢各位大牛
: public bool fileUpload(FileInfo localFile, string ftpPath, string ftpFileName)
: {
: ...................
一般情况下WINDOWS默认的中文编码是GB2312,所以你页面为UTF8的话,服务器端就会乱码,保证两者编码一直一般可以解决问题。