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; } }