SocialIMFilePreContent.jsp
3.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<%@ page language="java" contentType="text/html; charset=GBK" %>
<%@page import="weaver.social.service.SocialIMService"%>
<%@page import="weaver.social.SocialUtil"%>
<%@page import="java.io.ByteArrayOutputStream"%>
<%@page import="java.io.ByteArrayInputStream"%>
<%@page import="DBstep.iMsgServer2000"%>
<%@page import="java.net.URLDecoder"%>
<%@page import="java.net.URLEncoder"%>
<%@page import="weaver.general.Util"%>
<%@page import="java.io.InputStream"%>
<%@page import="java.io.InputStreamReader"%>
<%@page import="java.io.BufferedReader"%>
<%@page import="java.io.OutputStreamWriter"%>
<%@page import="java.io.BufferedWriter"%>
<%@page import="weaver.file.ImageFileManager"%>
<jsp:useBean id="log" class="weaver.general.BaseBean" scope="page" />
<style>
body {
font-size :12px;
}
</style>
<%
String fileid=Util.null2String(request.getParameter("fileid"),"0");
String filename=Util.null2String(request.getParameter("filename"),"0").toLowerCase();
String contenttype="";
InputStream inputStream=ImageFileManager.getInputStreamById(Util.getIntValue(fileid));
if(filename.endsWith(".doc")||filename.endsWith(".docx")||filename.endsWith(".xls")||filename.endsWith(".xlsx")){
response.setContentType("text/html");
SocialIMService imService=new SocialIMService();
ByteArrayOutputStream bout=imService.doFileConvert("",fileid);
byte[] fileBody = bout.toByteArray();
iMsgServer2000 MsgObj = new DBstep.iMsgServer2000();
MsgObj.MsgFileBody(fileBody); //将文件信息打包
fileBody = MsgObj.ToDocument(MsgObj.MsgFileBody()); //通过iMsgServer200 将pgf文件流转化为普通Office文件流
inputStream = new ByteArrayInputStream(fileBody);
}else if(filename.endsWith(".gif")||filename.endsWith(".png")||filename.endsWith(".jpg")||filename.endsWith(".bmp")){
response.sendRedirect("/weaver/weaver.file.FileDownload?fileid="+fileid) ;
return;
}else if(filename.endsWith(".txt")) {
boolean isAnsi = SocialUtil.isANSI(Util.getIntValue(fileid));
String isGbK = SocialUtil.getTxtCharsetById(Util.getIntValue(fileid));
if(isAnsi&&isGbK.equals("GBK")){
try{
HttpServletResponse res=response;
ServletOutputStream output = res.getOutputStream();
BufferedReader bufr = new BufferedReader(new InputStreamReader(inputStream,"GBK"));
BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(output,"GBK"));
String lineWriter = null;
while ((lineWriter = bufr.readLine()) != null) {
//log.writeLog("===lineWriter="+lineWriter);
bufw.write(lineWriter+"<br/>");
//log.writeLog("===lineWriter="+new String(lineWriter.getBytes("GBK"),"GBK"));
//log.writeLog("===lineWriter="+new String(lineWriter.getBytes("GBK"),"UTF-8"));
//log.writeLog("===lineWriter="+new String(lineWriter.getBytes("UTF-8"),"GBK"));
bufw.newLine();
bufw.flush();
}
bufr.close();
bufw.close();
} catch(Exception e) {
e.printStackTrace();
response.sendRedirect("/weaver/weaver.file.FileDownload?fileid="+fileid) ;
}
return;
}else{
response.sendRedirect("/weaver/weaver.file.FileDownload?fileid="+fileid) ;
return;
}
}else if(filename.endsWith(".pdf"))
contenttype = "application/pdf";
else if(filename.endsWith(".html")||filename.endsWith(".htm")||filename.endsWith(".sql")||filename.endsWith(".jsp")||filename.endsWith(".java")){
contenttype = "text/html";
}
try {
HttpServletResponse res=response;
ServletOutputStream output = res.getOutputStream();
res.setContentType(contenttype);
res.setHeader("content-disposition", "inline; filename=\"" + URLEncoder.encode(filename,"UTF-8")+"\"");
int byteread;
byte data[] = new byte[1024];
while ((byteread = inputStream.read(data)) != -1) {
output.write(data, 0, byteread);
output.flush();
}
if (output != null)
output.close();
if (output != null)
output.flush();
} catch (Exception ecode) {
}
%>