package com.yc.servlet;
import java.io.*;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.tools.ant.taskdefs.Length.FileMode;
import org.springframework.beans.factory.annotation.Autowired;
import com.jspsmart.upload.*;
import com.jspsmart.upload.File;
import com.yc.entity._sys_form_report;
import com.yc.factory.FactoryBean;
import com.yc.service.dao.c_sys_cr_pageDao;
import com.yc.service.impl.DBHelper;
import com.yc.service.impl.EnvHelper;
import com.yc.service.impl.c_sys_cr_Parent;
import com.yc.service.report._sys_form_reportDao;
import com.yc.utils.SessionKey;
public class servletUpload extends HttpServlet {
@Autowired
private _sys_form_reportDao _sys_form_reportBo;
/**
*
*/
private static final long serialVersionUID = 1L;
private ServletConfig config;
private c_sys_cr_pageDao cParent = new c_sys_cr_Parent();
long len = 0;
/**
* Init the servlet
*/
final public void init(ServletConfig config) throws ServletException {
this.config = config;
}
final public ServletConfig getServletConfig() {
return config;
}
/**
* Handles GET requests
*/
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
/**
* Handles POST requests
* 已经弃用,新的调用在com.yc.action.report的ReportPost类
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
_sys_form_reportBo = (_sys_form_reportDao) FactoryBean.getBean("_sys_form_report");
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
out.println("");
out.println("");
out.println("");
out.println("");
out.println("
");
out.println("jrxml文件
");
// Variables
int count = 0;
int imagenut =0;
SmartUpload mySmartUpload = new SmartUpload();
int FormID = 0;
int ReportID = 0;
int FormType = 0;
String pFrame="";
try {
// String ulj=(String)request.getSession().getAttribute(SessionKey.DATA_BASE_ID)+"/"+request.getSession().getAttribute(SessionKey.VERSION_ID).toString()+"/"+request.getSession().getAttribute(SessionKey.SYSTEM_LANGUAGE).toString();
// // Initialization
// // mySmartUpload.initialize(config, request, response);
// mySmartUpload.initialize(request.getServletContext(), request, response);//2014-7-24 14:12:05
// // Upload
// mySmartUpload.upload();
// // 文件com.jspsmart.upload.File
// File file = mySmartUpload.getFiles().getFile(0);
// String OriginalFileName = file.getFileName();// 上传前的名称
// Request myRequest = mySmartUpload.getRequest();
// String tois = myRequest.getParameter("tois");
// pFrame=myRequest.getParameter("pFrame");
// String rootPath = EnvHelper.getPath();
// if (tois != null && ("1").equals(tois)) {//保存上传的图片(logo)到数据库
// String path =(myRequest.getParameter("path"))+"/";
// // String path =(myRequest.getParameter("path").replaceAll("#d#", ulj))+"/"; //替换uploadImage.jsp里面的默认路径
// cParent.createFolder(rootPath + path);
// count = mySmartUpload.save("/" + path);
// String imagena=rootPath+path+OriginalFileName;
// InputStream photoStream = new FileInputStream(imagena);
// FormID = Integer.parseInt(DBHelper.isNull(myRequest.getParameter("formid"), 0)); // 图片必须
// FormType = Integer.parseInt(myRequest.getParameter("formtype"));//图片
// ReportID = Integer.parseInt(DBHelper.isNull(myRequest.getParameter("reportid"), 0));
//// imagenut=_sys_form_reportBo.inserImg(FormID, FormType,ReportID,input2byte(photoStream));
// if (imagenut>0) {
// out.print("图片保存成功!");
// java.io.File f=new java.io.File(imagena);
// if(f!=null&&f.exists()&&f.isFile()) {
// f.deleteOnExit();
// }
// }else {
// out.print("图片保存失败!");
// }
// } else {
// int opera = Integer.parseInt(myRequest.getParameter("opera1")); // 必须判断升级与修改插入用
// int dianIndex = OriginalFileName.lastIndexOf(".");
// if (opera == 1 || (dianIndex != -1 && OriginalFileName.substring(dianIndex).equals(".jrxml"))) {
// // 开始获得传进度参数值
// FormID = Integer.parseInt(DBHelper.isNull(myRequest.getParameter("FormID"), 0)); // 必须
// ReportID = Integer.parseInt(DBHelper.isNull(myRequest.getParameter("ReportID"), 0));
// // 默认为0,即在添加时查版本绝对是无,达到效果 //
// // 必须
// String ReportName = DBHelper.isNull(myRequest.getParameter("ReportName"), ""); // 必须
// String Owner = DBHelper.isNull(myRequest.getParameter("Owner"), ""); // 必须
// DateFormat dFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss.SS"); // DateFormat.getDateInstance();
// String nowTime = dFormat.format(new Date());
// String CreateTime =nowTime;// 必须 DBHelper.isNull(myRequest.getParameter("CreateTime"), nowTime);
// String ModifiedMan = DBHelper.isNull(myRequest.getParameter("ModifiedMan"), ""); // 必须可不写但必须要
// String LastModified =nowTime; // 必须 DBHelper.isNull(myRequest.getParameter("LastModified"), nowTime);
// String OutFormat = DBHelper.isNull(myRequest.getParameter("OutFormat"), "html"); // 必须
// int CurVer = Integer.parseInt(DBHelper.isNull(myRequest.getParameter("CurVer"), 1));
// // 后加上的有
// FormType = Integer.parseInt(myRequest.getParameter("FormType"));
// String PhysicalFileName = myRequest.getParameter("PhysicalFileName");
// String parentidStr = myRequest.getParameter("ParentReportID");
// int ParentReportID = (parentidStr != null) ? Integer.parseInt(parentidStr) : 0;
//
// String DefaultOutFormat = myRequest.getParameter("DefaultOutFormat");
// int ShowButton = Integer.parseInt(myRequest.getParameter("ShowButton").toString());
// String iReportParameters = myRequest.getParameter("iReportParameters");
// // 重新添加
// String docstatus = myRequest.getParameter("docstatus");
// // 新添加
// String Warnnessage = myRequest.getParameter("Warnnessage");
// String PrintNumFieldid = myRequest.getParameter("PrintNumFieldid");
// String PrintNumFieldName = myRequest.getParameter("PrintNumFieldName");
// String isDirectPrinter = myRequest.getParameter("isDirectPrinter");
// String isSelectPrinter = myRequest.getParameter("isSelectPrinter");
// String showItemExpression = myRequest.getParameter("showItemExpression");
// String isZoominFont = myRequest.getParameter("isZoominFont");
// String ReportFilePath = EnvHelper.getJrxml() +ulj+"/"+ FormID + "/";// 保存在项目下的目录
// String ReportUpName = FormID + "_" + ReportID + ".jrxml";// 上传后的名称
//
// String upPath = rootPath + ReportFilePath + ReportUpName;
// String toPath = rootPath + ReportFilePath + OriginalFileName;
// _sys_form_report sfr = new _sys_form_report(FormID, ReportID, ReportName, OutFormat, Owner, CreateTime, ModifiedMan, LastModified, OriginalFileName, CurVer,ulj);
//
// sfr.setFormType(FormType);
// sfr.setPhysicalFileName(PhysicalFileName);
// sfr.setParentReportID(ParentReportID);
// sfr.setDefaultOutFormat(DefaultOutFormat);
// sfr.setShowButton(ShowButton);
// sfr.setIReportParameters(iReportParameters);
//
// sfr.setDocstatus(docstatus);
// // 后加
// sfr.setWarnnessage(Warnnessage);
// sfr.setPrintNumFieldid(PrintNumFieldid);
// sfr.setPrintNumFieldName(PrintNumFieldName);
// sfr.setIsDirectPrinter(Integer.parseInt(isDirectPrinter));
// sfr.setIsSelectPrinter(Integer.parseInt(isSelectPrinter));
// sfr.setShowItemExpression(showItemExpression);
// sfr.setIsZoominFont(Integer.parseInt(isZoominFont));
// sfr.setIsBeforeRefreshContent(Integer.parseInt(myRequest.getParameter("isBeforeRefreshContent")));
// sfr.setDataBaseId(Integer.parseInt(request.getSession().getAttribute(SessionKey.DATA_BASE_ID).toString()));//数据源ID
// _sys_form_reportDao sfrImpl = new _sys_form_reportImpl();
// 物理路径不存在,需不需创建
// cParent.createFolder(rootPath + ReportFilePath);
//
// // 2---------在物理路径创建文件,即保存了文件
// count = mySmartUpload.save("/" + ReportFilePath);
// String conString = "";
// if (!OriginalFileName.trim().equals("")) {
// conString = cParent.readFile(rootPath + ReportFilePath + sfr.getReportToName() + ".jrxml", "UTF-8");
// }
// if (OriginalFileName.trim().equals("") || conString.indexOf("name=\"" + sfr.getReportToName() + "\"") != -1) {//
// int num = 0;
// // 4-------进行升级,更新插入判断操作
// switch (opera) {
// case 0:// 添加报表
// num = _sys_form_reportBo.insert(sfr);
// if (num > 0) {
// out.print("插入成功!");
// }
// break;
// case 1:// 修改报表
// // // 3--------------查询当前版本
// num = _sys_form_reportBo.update(sfr);
// if (num > 0) {
// out.print("修改成功!");
// }
// break;
// case 2:// 升级报表
// num = _sys_form_reportBo.upgrade(sfr);
// if (num > 0) {
// out.print("升级成功!");
// }
// break;
// default:
// break;
// }
// if (!OriginalFileName.equals("")) {// 删除旧报表文件
// BuildFormat.delete(upPath); //删除修改后旧的报表文件 以免前台修改了还是显示旧的报表数据
// // BuildFormat.delete(toPath);// 删除了这个就没报表了
// }
// } else {
// out.println("文件名称为:" + sfr.getReportToName() + ".jrxml的报表与内部name属性不符合,必须相同!");
// }
// } else {
// out.println("只能上传JRXML文件");
// }
// }
// // Display the result 显示结果
// if(count>0){//有新的才提示。2014-7-17 15:03:23
// out.println(count + "个文件已上传");//文件上传提示。out.println(count + " file uploaded.")--用中文; 2014-7-17 15:01:46
// }
} catch (Exception e) {
e.printStackTrace();
out.println("Unable to upload the file.
");
out.println("Error : " + e.toString());
}
out.println("
");
out.println("");
out.println("");
out.println("");
out.close();
out.flush();
}
/**
* Destroy the servlet
*/
public void destroy() {
}
/**
* InputStream转换为InputStreambyte[]
* @param inStream
* @return
* @throws IOException
* 2014-7-24 14:03:43
*/
public static final byte[] input2byte(InputStream inStream)
throws IOException {
ByteArrayOutputStream swapStream = new ByteArrayOutputStream();
byte[] buff = new byte[100];
int rc = 0;
while ((rc = inStream.read(buff, 0, 100)) > 0) {
swapStream.write(buff, 0, rc);
}
byte[] in2b = swapStream.toByteArray();
return in2b;
}
}