📄 _getfile__jsp.java
字号:
/*
* JSP generated by Resin-3.1.0 (built Fri, 22 Dec 2006 07:00:35 PST)
*/
package _jsp._forum;
import javax.servlet.*;
import javax.servlet.jsp.*;
import javax.servlet.http.*;
import cn.js.fan.util.*;
import cn.js.fan.web.*;
import com.redmoon.forum.*;
import com.redmoon.forum.person.*;
import com.redmoon.forum.plugin.*;
import com.redmoon.forum.plugin.base.*;
import java.util.*;
import java.io.*;
import java.net.*;
public class _getfile__jsp extends com.caucho.jsp.JavaPage
{
private final java.util.HashMap<String,java.lang.reflect.Method> _jsp_functionMap = new java.util.HashMap<String,java.lang.reflect.Method>();
private boolean _caucho_isDead;
public void
_jspService(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
throws java.io.IOException, javax.servlet.ServletException
{
javax.servlet.http.HttpSession session = request.getSession(true);
com.caucho.server.webapp.WebApp _jsp_application = _caucho_getApplication();
javax.servlet.ServletContext application = _jsp_application;
com.caucho.jsp.PageContextImpl pageContext = com.caucho.jsp.QJspFactory.allocatePageContext(this, _jsp_application, request, response, null, session, 8192, true, false);
javax.servlet.jsp.JspWriter out = pageContext.getOut();
final javax.el.ELContext _jsp_env = pageContext.getELContext();
javax.servlet.ServletConfig config = getServletConfig();
javax.servlet.Servlet page = this;
response.setContentType("text/html;charset=gb2312");
request.setCharacterEncoding("GB2312");
try {
com.redmoon.forum.Privilege privilege;
privilege = (com.redmoon.forum.Privilege) pageContext.getAttribute("privilege");
if (privilege == null) {
privilege = new com.redmoon.forum.Privilege();
pageContext.setAttribute("privilege", privilege);
}
if (!privilege.isUserLogin(request)) {
if (!ForumDb.getInstance().canGuestSeeAttachment()) {
response.sendRedirect("../info.jsp?op=login&info=" + StrUtil.UrlEncode(SkinUtil.LoadString(request, "info_please_login")));
return;
}
}
int msgId = ParamUtil.getInt(request, "msgId");
MsgDb md = new MsgDb();
md = md.getMsgDb(msgId);
if (md==null || !md.isLoaded()) {
out.print("<meta http-equiv='Content-Type' content='text/html; charset=gb2312'>");
out.println("Topic not found!");
return;
}
if (!privilege.canUserDo(request, md.getboardcode(), "attach_download")) {
response.sendRedirect("../info.jsp?info=" + StrUtil.UrlEncode(SkinUtil.LoadString(request, "pvg_invalid")));
return;
}
int attachId = ParamUtil.getInt(request, "attachId");
Attachment att = md.getAttachment(attachId);
// \u68c0\u67e5\u8be5\u9644\u4ef6\u4e0b\u8f7d\u662f\u5426\u9700\u4ed8\u8d39
String groupCode = "";
if (privilege.isUserLogin(request)) {
UserDb ud = new UserDb();
ud = ud.getUser(privilege.getUser(request));
groupCode = ud.getGroupCode();
// \u53d6\u5f97\u7528\u6237\u6240\u5728\u7ec4
if (groupCode.equals(""))
groupCode = UserGroupDb.EVERYONE;
}
else {
groupCode = UserGroupDb.GUEST;
}
// \u68c0\u67e5\u7528\u6237\u5728\u6b64\u7248\u5757\u4e0b\u8f7d\u662f\u5426\u9700\u4ed8\u8d39
UserGroupPrivDb ugpd = new UserGroupPrivDb();
ugpd = ugpd.getUserGroupPrivDb(groupCode, md.getboardcode());
String moneyCode = StrUtil.getNullStr(ugpd.getString("money_code"));
if (!moneyCode.equals("")) {
int sum = ugpd.getInt("money_sum");
if (sum>0) {
// \u68c0\u67e5\u7528\u6237\u7684\u91d1\u989d\u662f\u5426\u8db3\u591f
ScoreMgr sm = new ScoreMgr();
ScoreUnit su = sm.getScoreUnit(moneyCode);
IPluginScore isc = su.getScore();
if (isc != null) {
try {
isc.pay(privilege.getUser(request), isc.SELLER_SYSTEM, sum);
} catch (ResKeyException e) {
out.print(SkinUtil.makeErrMsg(request, e.getMessage(request)));
return;
}
}
}
}
com.redmoon.forum.Config cfg = com.redmoon.forum.Config.getInstance();
if (att.isRemote()) {
// String url = cfg.getProperty("forum.ftpUrl");
// response.sendRedirect(url + "/" + att.getVisualPath() + "/" + att.getDiskName());
FTPUtil ftp = new FTPUtil();
boolean retFtp = ftp.connect(cfg.getProperty("forum.ftpServer"),
cfg.getIntProperty("forum.ftpPort"),
cfg.getProperty("forum.ftpUser"),
cfg.getProperty("forum.ftpPwd"), true);
if (!retFtp) {
ftp.close();
out.print(ftp.getReplyMessage());
return;
}
String remotefile = att.getVisualPath() + "/" + att.getDiskName();
InputStream is = null;
is = ftp.getFTPClient().retrieveFileStream(remotefile);
response.setContentType("application/octet-stream");
response.setHeader("Content-disposition","attachment; filename=" + StrUtil.GBToUnicode(att.getName()));
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
bis = new BufferedInputStream(is);
bos = new BufferedOutputStream(response.getOutputStream());
byte[] buff = new byte[2048];
int bytesRead;
while(-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
bos.write(buff,0,bytesRead);
}
} catch(final IOException e) {
System.out.println(getClass() + "IOException: " + e);
} finally {
if (bis != null)
bis.close();
if (bos != null)
bos.close();
if (is != null) {
is.close();
}
ftp.completePendingCommand();
ftp.close();
}
att.setDownloadCount(att.getDownloadCount() + 1);
att.save();
return;
}
// response.setContentType(MIMEMap.get(StrUtil.getFileExt(att.getDiskName())));
// response.setContentType(MIMEMap.get(att.getExt()));
// response.setHeader("Content-disposition","filename=" + StrUtil.GBToUnicode(att.getName()));
// \u4ee5\u8be2\u95ee\u4e0b\u8f7d\u7684\u65b9\u5f0f\u6253\u5f00\uff0c\u4f1a\u8986\u76d6\u7236\u7a97\u53e3
response.setContentType("application/octet-stream");
response.setHeader("Content-disposition","attachment; filename=" + StrUtil.GBToUnicode(att.getName()));
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
String filePath = Global.realPath + cfg.getAttachmentPath() + "/" + att.getVisualPath() + "/" + att.getDiskName();
try {
bis = new BufferedInputStream(new FileInputStream(filePath)); // att.getFullPath()));
bos = new BufferedOutputStream(response.getOutputStream());
byte[] buff = new byte[2048];
int bytesRead;
while(-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
bos.write(buff,0,bytesRead);
}
} catch(final IOException e) {
System.out.println("IOException: " + e);
} finally {
if (bis != null)
bis.close();
if (bos != null)
bos.close();
}
att.setDownloadCount(att.getDownloadCount() + 1);
att.save();
} catch (java.lang.Throwable _jsp_e) {
pageContext.handlePageException(_jsp_e);
} finally {
com.caucho.jsp.QJspFactory.freePageContext(pageContext);
}
}
private java.util.ArrayList _caucho_depends = new java.util.ArrayList();
public java.util.ArrayList _caucho_getDependList()
{
return _caucho_depends;
}
public void _caucho_addDepend(com.caucho.vfs.PersistentDependency depend)
{
super._caucho_addDepend(depend);
com.caucho.jsp.JavaPage.addDepend(_caucho_depends, depend);
}
public boolean _caucho_isModified()
{
if (_caucho_isDead)
return true;
if (com.caucho.server.util.CauchoSystem.getVersionId() != 5022137076587403036L)
return true;
for (int i = _caucho_depends.size() - 1; i >= 0; i--) {
com.caucho.vfs.Dependency depend;
depend = (com.caucho.vfs.Dependency) _caucho_depends.get(i);
if (depend.isModified())
return true;
}
return false;
}
public long _caucho_lastModified()
{
return 0;
}
public java.util.HashMap<String,java.lang.reflect.Method> _caucho_getFunctionMap()
{
return _jsp_functionMap;
}
public void init(ServletConfig config)
throws ServletException
{
super.init(config);
com.caucho.server.webapp.WebApp webApp
= (com.caucho.server.webapp.WebApp) config.getServletContext();
com.caucho.jsp.TaglibManager manager = webApp.getJspApplicationContext().getTaglibManager();
}
public void destroy()
{
_caucho_isDead = true;
super.destroy();
}
public void init(com.caucho.vfs.Path appDir)
throws javax.servlet.ServletException
{
com.caucho.vfs.Path resinHome = com.caucho.server.util.CauchoSystem.getResinHome();
com.caucho.vfs.MergePath mergePath = new com.caucho.vfs.MergePath();
mergePath.addMergePath(appDir);
mergePath.addMergePath(resinHome);
com.caucho.loader.DynamicClassLoader loader;
loader = (com.caucho.loader.DynamicClassLoader) getClass().getClassLoader();
String resourcePath = loader.getResourcePathSpecificFirst();
mergePath.addClassPath(resourcePath);
com.caucho.vfs.Depend depend;
depend = new com.caucho.vfs.Depend(appDir.lookup("forum/getfile.jsp"), -4432389792429880119L, false);
com.caucho.jsp.JavaPage.addDepend(_caucho_depends, depend);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -