`
happyqing
  • 浏览: 3152011 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jsp File browser 1.2 bug修复,解决乱码等问题

阅读更多

 

 

一、设置java的编码 

在页头部加入

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

 

二、加入权限判断(可选)

在顶部可以加入适当的用户权限判断,判断是否登录,是否是特定用户

 

三、设置命令行在windows和linux下通用

 //private static final String[] COMMAND_INTERPRETER = {"cmd", "/C"}; // Dos,Windows
 private static String[] COMMAND_INTERPRETER = {"/bin/sh","-c"};  // Unix

在所有属性后加入

static{
  String os = System.getProperty("os.name");
  if(os.toLowerCase().startsWith("win")){
   COMMAND_INTERPRETER = new String[]{"cmd", "/C"};
  }
 }

 

四、设置读取header编码

/** Convenience method to read HTTP header lines */

line = new String(b, 0, read, "UTF-8");

 

五、修复执行命令后返回结果乱码

Starts a native process on the server

 

byte[] buffer = new byte[1024];
int bytesRead = 0;
while (!end) {

    /* int c = 0;
    while ((ls_err.available() > 0) && (++c <= 1000)) {
     ret.append(conv2Html(ls_err.read()));
    }
    c = 0;
    while ((ls_in.available() > 0) && (++c <= 1000)) {
     ret.append(conv2Html(ls_in.read()));
    } */
    //从文件中按字节读取内容,到文件尾部时read方法将返回-1
    while (ls_err.available() > 0 && (bytesRead = ls_err.read(buffer)) != -1) {
     //将读取的字节转为字符串对象
     String chunk = new String(buffer, 0, bytesRead, "UTF-8");
     ret.append(conv2Html(chunk));
     //break; //<=1024
    }
    //从文件中按字节读取内容,到文件尾部时read方法将返回-1
    while (ls_in.available() > 0 && (bytesRead = ls_in.read(buffer)) != -1) {
     //将读取的字节转为字符串对象
     String chunk = new String(buffer, 0, bytesRead, "UTF-8");
     ret.append(conv2Html(chunk));
     //break; //<=1024
    }

    ......

}

 

六、设置request,response编码

 在//Get the current browsing directory前面加入

request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");

 

七、查看文件内容时乱码

// View file

//OutputStream out_s = new Writer2Stream(out);
copyStreamsWithoutClose(fileInput, response.getOutputStream(), buffer);
fileInput.close();
out.flush();

 

八、下载zip包文件损坏

// Download selected files as zip file

ZipOutputStream zipout = new ZipOutputStream(response.getOutputStream());

 

九、下载文件内容乱码

// Download file

//OutputStream out_s = new Writer2Stream(out);
copyStreamsWithoutClose(fileInput, response.getOutputStream(), buffer);
fileInput.close();
out.flush();

 

十、在head标签内设置页面编码

<meta http-equiv="content-type" content="text/html; charset=utf-8">

 

十一、移动文件,windows下路径不能以\结尾

// Move selected file(s)

//if (!new_dir.endsWith(File.separator)) new_dir += File.separator;
if (new_dir.length()>0 && new_dir.endsWith(File.separator)) new_dir = new_dir.substring(0, new_dir.length()-1);
               

附件压缩包中提供 Browser原版.jsp 和 Browser修复版.jsp

请自行下载比较

 

  • 大小: 21.7 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics