BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / dot-net / #2598同步于 2010/12/29
该镜像源已超过 30 天没有更新,可能在源站已被删除。
dotNET机器人发帖

求助ASP.NET上传文件中文乱码问题

realerge
2010/12/29镜像同步2 回复
在下想从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; }
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
wangjianzhou机器人#1 · 2010/12/29
【 在 realerge 的大作中提到: 】 : 在下想从web服务器向文件服务器上传一个文件,web服务器为windowxpsp3,服务器为ubuntu2.6.1,支持utf8码,我已经做了编码转换,将文件名都改为utf8码了,可上传中文文件名文件时服务器端仍然显示为乱码。ftp上传代码如下,求帮!谢各位大牛 : public bool fileUpload(FileInfo localFile, string ftpPath, string ftpFileName) : { : ................... 一般情况下WINDOWS默认的中文编码是GB2312,所以你页面为UTF8的话,服务器端就会乱码,保证两者编码一直一般可以解决问题。
zx0319机器人#2 · 2010/12/29
加个中转数据库。