最近开发一个项目,用户的文件是存放在FTP服务器上的。并且需要在浏览器中,浏览这些文件。FTP文件路径如下:

但是却出现了如下问题:ftp://192.168.1.121/成果/分区/建设控制/市域控规划分.jpg

1.FTP中文文件路径在Firfox中可以正常显示

2.但是在IE、360、谷歌浏览其中却提示,无法访问路径

经过查询资料,知道IE等浏览器对中文字符采用的是GBK的字符集编码,但是Firfox却是采用的UTF-8的字符集编码。

所以得出如下结论:

1.在客户端判断浏览器产品是否属于Firfox

2.如果当前客户端不是Firfox,那么就对路径进行GBK编码

3.但是JS脚本无法实现GBK编码,故此必须在服务器端进行GBK编码

4.在服务器端建立一个CharsetHandler.ashx文件

5.文件内容如下:

string paraUrl = context.Request.QueryString["url"];

if (string.IsNullOrEmpty(paraUrl))

return;

paraUrl = paraUrl.ToLower();

//判断网络协议

string patternNetXY = @"^(http|https|ftp):[/\\]{2}";

Match match = Regex.Match(paraUrl, patternNetXY);

//网络协议名称

string netXYName = "";

if (match != null)

{

netXYName = match.Value;

paraUrl = paraUrl.Replace(netXYName, "");

}

//判断IP地址

string patternIP = @"^(((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))\.){3}((25[0-5]?)|(1\d{0,2}))";

match = Regex.Match(paraUrl, patternIP);

//ip地址

string ip = "";

if (match != null)

{

ip = match.Value;

//去掉ip地址之后的路径

paraUrl = paraUrl.Replace(ip+"/", "");

}

string encode = HttpUtility.UrlEncode(paraUrl, System.Text.Encoding.GetEncoding("GB2312"));

string returnUrl = "";

if (!string.IsNullOrEmpty(netXYName) && !string.IsNullOrEmpty(ip))

returnUrl = netXYName + ip+"/" + encode.ToUpper();

else

returnUrl = encode.ToUpper();

context.Response.ContentType = "text/plain";

System.Text.StringBuilder sb = new System.Text.StringBuilder();

sb.Append("{");

sb.Append("\"data\":\"" + returnUrl + "\"");

sb.Append("}");

//输出数据

context.Response.Write(sb.ToString());

context.Response.End();

360浏览器不能打开ftp服务器上的文件,解决IE、360、谷歌浏览器等无法访问FTP中文文件路径...相关推荐

  1. 360浏览器一打开就是瑞星安全网址怎么办

    核心提示:360浏览器一打开就是瑞星安全网址怎么办 360浏览器一打开就是瑞星安全网址怎么办 解决方法如下: 1.打开360杀毒软件后,在页面底部右下角点击打开[软件净化]后能找到瑞星导航,点击卸载. ...

  2. 打开360浏览器显示无法连接服务器错误,Win10电脑上360浏览器提示网络连接错误,错误代码 102的解决方案...

    360浏览器是我们经常在Win10电脑上使用的浏览器之一,如果我们在Win10电脑上,用360浏览器无法打开网页,还提示网络连接错误,错误代码 102,这个我们要怎么办呢?这个问题已经让很多用户无法正 ...

  3. 打开FTP服务器上的文件夹时发生错误。请检查是否有权限访问该文件夹

    当您使用FTP上传数据的时候,经常会遇到"打开FTP"无权限的提示,这是由于您的浏览器设置了防火墙的缘故,下面是正确的设置流程: 1. 首先打开一个IE浏览器(如果打开了多个浏览器 ...

  4. “打开ftp服务器上的文件夹时发生错误,请检查是否有权限访问该文件夹

    阿里云虚拟主机上传网站程序 问题场景:网页制作完成后,程序需上传至虚拟主机 注意事项: 1.Windows系统的主机请将全部网页文件直接上传到FTP根目录,即 / . 2. 如果网页文件较多,上传较慢 ...

  5. 打开ftp服务器上的文件时发生错误。请检查是否有权限访问该文件夹

    打开ftp服务器上的文件时发生错误.请检查是否有权限访问该文件夹 详细信息:the opration time out 我以为是文件夹内容太多,访问超时,所以设置了下服务器的超时为2000秒,也不起作 ...

  6. “打开ftp服务器上的文件夹时发生错误,请检查是否有权限访问该文件夹“

    阿里云虚拟主机上传网站程序 问题场景:网页制作完成后,程序需上传至虚拟主机 注意事项: 1.Windows系统的主机请将全部网页文件直接上传到FTP根目录,即 / . 2. 如果网页文件较多,上传较慢 ...

  7. 打开ftp服务器上的文件夹时发生错误,请检查是否有权限访问该文件夹

    问题:在上传过程中,出现"打开ftp服务器上的文件夹时发生错误,请检查是否有权限访问该文件夹"错误. 解决办法(未成功):将上传的文件分配组或用户的权限为完全控制,上传还是失败: ...

  8. 打开ftp服务器上的文件夹时发生错误 请检查是否,以及220 227 报错

    2019独角兽企业重金招聘Python工程师标准>>> 在没有进行设置过程中,进行连接到ftp的服务器中之后,会提示的是错误的信息为"打开ftp服务器上的文件夹时发生错误 ...

  9. 打开FTP 服务器上的文件夹时发生错误,请检查是否有权限访问该文件夹 FTP 200 TYPE is now ASCll , 227 Entering Passive Mode

    文章目录 打开FTP 服务器上的文件夹时发生错误,请检查是否有权限访问该文件夹 FTP 200 TYPE is now ASCll , 227 Entering Passive Mode 1.错误如图 ...

最新文章

  1. 9款Android经常使用的高速开发框架
  2. 视频|每日CeBIT:IBM九大展区各显神通,传统工业与工业4.0的博弈
  3. 项目Alpha冲刺 Day11
  4. 【温故知新】CSS学习笔记(字体样式属性)
  5. rhel6上使用udev配置oracle asm,Red Hat Enterprise Linux 6使用udev配置Oracle ASM总结文档
  6. 河南云计算和大数据“十三五”发展规划发布
  7. java 函数式编程 示例_功能Java示例 第1部分–从命令式到声明式
  8. MySQL--开发技巧(一)
  9. mysql遇见Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre的问题
  10. C++ 语言学习入门--类
  11. 如何制作手机自适应网页
  12. solarflare低延迟网卡_Solarflare低延迟万兆网卡配置和性能调优实践
  13. java学习心路历程
  14. 饥荒控制台输入没用_《饥荒》控制台秘籍使用方法
  15. huffman python,哈夫曼(Huffman)编码python代码实现
  16. Win10 发布UWD图形驱动程序 有助于小幅提高性能
  17. 脱机使用计算机是什么意思,电脑脱机状态是什么意思
  18. 尚硅谷 宋红康老师 Java视频全程课程目录
  19. python服务端设置心跳处理_Heartrate:看见 Python 程序运行的“心跳”
  20. 全国计算机报名拍照神器,2021年全国计算机等级报名须知及报名电子照教程

热门文章

  1. 巧用第三方快速开发Android App 热门第三方SDK及框架
  2. 中鑫吉鼎|不同薪资上班族理财应该如何规划
  3. sqlplus连接的三种方式
  4. android切换横竖,Android横竖屏切换工具
  5. Nature综述:临床宏基因组学的应用与挑战
  6. 用注销脚本清除上网所留下的痕迹
  7. Java 之父高斯林加入亚马逊 AWS
  8. 家用监控器怎么选择,怎么连接手机远程监控,保存多久视频
  9. iOS UIButton 渐变色、边框渐变色、字体渐变色
  10. 为什么Netty使用NIO而不是AIO