Example usage for javax.servlet ServletOutputStream write

List of usage examples for javax.servlet ServletOutputStream write

Introduction

In this page you can find the example usage for javax.servlet ServletOutputStream write.

Prototype

public void write(byte b[], int off, int len) throws IOException 

Source Link

Document

Writes len bytes from the specified byte array starting at offset off to this output stream.

Usage

From source file:com.bluexml.xforms.controller.navigation.NavigationManager.java

/**
 * Send image.//  www.j a va2 s . c o m
 * 
 * @param req
 *            the req
 * @param resp
 *            the resp
 */
public void sendImage(HttpServletRequest req, HttpServletResponse resp) {
    String location = req.getParameter("location");
    InputStream in = null;
    if (StringUtils.trimToNull(location) != null) {
        boolean isImage = false;
        int lastIndexOf = location.lastIndexOf('.');
        if (lastIndexOf != -1) {
            String extension = location.substring(lastIndexOf).toUpperCase();
            if (extension.endsWith("JPEG") || extension.endsWith("JPG") || extension.endsWith("PNG")
                    || extension.endsWith("BMP") || extension.endsWith("GIF")) {
                isImage = true;
            }
        }
        if (isImage) {
            File sourceFile = null;
            if (location.startsWith("file:")) {
                try {
                    // location = URLEncoder.encode(location, "UTF-8");
                    // URI fileURI = URI.create(location);
                    location = location.replace("file:", "");
                    if (location.charAt(2) == ':') {
                        location = location.subSequence(1, location.length()).toString();
                    }
                    sourceFile = new File(location);
                } catch (Exception e) {
                    sourceFile = null;
                    if (logger.isErrorEnabled()) {
                        logger.error(e);
                    }
                }
            } else {
                sourceFile = new File(AlfrescoController.UPLOAD_DIRECTORY, location);
            }

            try {
                in = new FileInputStream(sourceFile);
            } catch (FileNotFoundException e) {
                if (logger.isErrorEnabled()) {
                    logger.error(e);
                }
            }

        }
    }
    if (in == null) {
        in = NavigationSessionListener.getContext().getResourceAsStream("/resources/images/blank.png");
    }

    ServletOutputStream out = null;

    try {
        out = resp.getOutputStream();
        byte[] bytes = new byte[1024];
        int bytesRead;

        while ((bytesRead = in.read(bytes)) != -1) {
            out.write(bytes, 0, bytesRead);
        }
    } catch (Exception e) {
        if (logger.isErrorEnabled()) {
            logger.error(e);
        }
    } finally {

        if (in != null) {
            try {
                in.close();
            } catch (IOException e) {
                if (logger.isErrorEnabled()) {
                    logger.error(e);
                }
            }
        }
        if (out != null) {
            try {
                out.close();
            } catch (IOException e) {
                if (logger.isErrorEnabled()) {
                    logger.error(e);
                }
            }
        }
    }

}

From source file:com.duroty.application.mail.actions.AttachmentAction.java

/**
 * DOCUMENT ME!/*from   w ww. j a  v  a 2s. com*/
 *
 * @param request DOCUMENT ME!
 * @param response DOCUMENT ME!
 *
 * @throws ServletException DOCUMENT ME!
 * @throws IOException DOCUMENT ME!
 */
protected void doDownload(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    DataInputStream in = null;
    ByteArrayInputStream bais = null;
    ServletOutputStream op = null;

    try {
        String mid = request.getParameter("mid");
        String part = request.getParameter("part");

        Mail filesInstance = getMailInstance(request);

        MailPartObj obj = filesInstance.getAttachment(mid, part);

        int length = 0;
        op = response.getOutputStream();

        String mimetype = obj.getContentType();

        //
        //  Set the response and go!
        //
        //  Yes, I know that the RFC says 'attachment'.  Unfortunately, IE has a typo
        //  in it somewhere, and Netscape seems to accept this typing as well.
        //
        response.setContentType((mimetype != null) ? mimetype : "application/octet-stream");
        response.setContentLength((int) obj.getSize());
        response.setHeader("Content-Disposition", "attachement; filename=\"" + obj.getName() + "\"");
        response.setHeader("Pragma", "public");
        response.setHeader("Cache-Control", "max-age=0");

        //
        //  Stream to the requester.
        //
        byte[] bbuf = new byte[1024];
        bais = new ByteArrayInputStream(obj.getAttachent());
        in = new DataInputStream(bais);

        while ((in != null) && ((length = in.read(bbuf)) != -1)) {
            op.write(bbuf, 0, length);
        }
    } catch (Exception ex) {
    } finally {
        try {
            op.flush();
        } catch (Exception ex) {
        }

        IOUtils.closeQuietly(bais);
        IOUtils.closeQuietly(in);
        IOUtils.closeQuietly(op);
    }
}

From source file:com.duroty.application.files.actions.DownloadFileAction.java

/**
 * DOCUMENT ME!// w  ww .  ja  v  a  2  s . c  o  m
 *
 * @param request DOCUMENT ME!
 * @param response DOCUMENT ME!
 *
 * @throws ServletException DOCUMENT ME!
 * @throws IOException DOCUMENT ME!
 */
protected void doDownload(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    DataInputStream in = null;
    ByteArrayInputStream bais = null;
    ServletOutputStream op = null;

    try {
        String mid = request.getParameter("mid");
        String part = request.getParameter("part");

        Files filesInstance = getFilesInstance(request);

        MailPartObj obj = filesInstance.getAttachment(mid, part);

        int length = 0;
        op = response.getOutputStream();

        String mimetype = obj.getContentType();

        //
        //  Set the response and go!
        //
        //  Yes, I know that the RFC says 'attachment'.  Unfortunately, IE has a typo
        //  in it somewhere, and Netscape seems to accept this typing as well.
        //
        response.setContentType((mimetype != null) ? mimetype : "application/octet-stream");
        response.setContentLength((int) obj.getSize());
        response.setHeader("Content-Disposition", "attachement; filename=\"" + obj.getName() + "\"");
        response.setHeader("Pragma", "public");
        response.setHeader("Cache-Control", "max-age=0");

        //
        //  Stream to the requester.
        //
        byte[] bbuf = new byte[1024];
        bais = new ByteArrayInputStream(obj.getAttachent());
        in = new DataInputStream(bais);

        while ((in != null) && ((length = in.read(bbuf)) != -1)) {
            op.write(bbuf, 0, length);
        }
    } catch (Exception ex) {
    } finally {
        try {
            op.flush();
        } catch (Exception ex) {
        }

        IOUtils.closeQuietly(bais);
        IOUtils.closeQuietly(in);
        IOUtils.closeQuietly(op);
    }
}

From source file:com.carfinance.module.common.controller.DocumentDownloadController.java

/**
 * ????Excel/*from  w w w. ja va 2  s  .co  m*/
 * @param model
 * @param request
 * @param response
 */
@RequestMapping(value = "/cashierstatement", method = RequestMethod.GET)
public void cashierStatement(Model model, HttpServletRequest request, HttpServletResponse response) {
    String contrace_id_str = request.getParameter("contrace_id");

    String contrace_no = "";
    String customer_name = "";
    String customer_no = "";
    String daily_available_km = "";
    String contrace_type = "";

    VehicleContraceInfo vehicleContraceInfo = this.vehicleServiceManageService
            .getVehicleContraceInfoById(Long.valueOf(contrace_id_str));
    if (vehicleContraceInfo != null) {
        contrace_no = vehicleContraceInfo.getContrace_no();
        customer_name = vehicleContraceInfo.getCustomer_name();
        daily_available_km = vehicleContraceInfo.getDaily_available_km() + "";
    } else {
        PropertyContraceInfo propertyContraceInfo = this.vehicleServiceManageService
                .getPropertyContraceInfoById(Long.valueOf(contrace_id_str));
        if (propertyContraceInfo != null) {
            contrace_no = propertyContraceInfo.getContrace_no();
            customer_name = propertyContraceInfo.getCustomer_name();
            contrace_type = "?";
        }
    }

    List<VehicleContraceVehsInfo> vehicleContraceVehsInfoList = this.vehicleServiceManageService
            .getVehicleContraceVehsListByContraceId(Long.valueOf(contrace_id_str));

    //1.ContentType
    response.setContentType("multipart/form-data");
    //2.????(??a.pdf)
    response.setHeader("Content-Disposition", "attachment;fileName=" + contrace_no + ".xls");

    // webbookExcel
    HSSFWorkbook wb = new HSSFWorkbook();

    for (VehicleContraceVehsInfo v : vehicleContraceVehsInfoList) {
        // webbooksheet,Excelsheet
        HSSFSheet sheet = wb.createSheet(v.getLicense_plate());
        // sheet0,??poiExcel?short
        HSSFRow row = sheet.createRow((int) 0);
        // ? 
        HSSFCellStyle style = wb.createCellStyle();
        style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // ?

        HSSFCell cell = row.createCell((short) 0);
        cell.setCellValue("??");
        cell.setCellStyle(style);
        cell = row.createCell((short) 1);
        cell.setCellValue("?");
        cell.setCellStyle(style);
        cell = row.createCell((short) 2);
        cell.setCellValue("");
        cell.setCellStyle(style);
        cell = row.createCell((short) 3);
        cell.setCellValue("?");
        cell.setCellStyle(style);
        cell = row.createCell((short) 4);
        cell.setCellValue("");
        cell.setCellStyle(style);

        row = sheet.createRow(1);
        row.createCell((short) 0).setCellValue(customer_name);
        row.createCell((short) 1).setCellValue(customer_no);
        row.createCell((short) 2).setCellValue(contrace_type);
        row.createCell((short) 3).setCellValue("");
        row.createCell((short) 4).setCellValue("");

        row = sheet.createRow(2);
        HSSFCell cell2 = row.createCell((short) 0);
        cell2.setCellValue("?");
        cell2.setCellStyle(style);
        cell2 = row.createCell((short) 1);
        cell2.setCellValue("??");
        cell2.setCellStyle(style);
        cell2 = row.createCell((short) 2);
        cell2.setCellValue("");
        cell2.setCellStyle(style);
        cell2 = row.createCell((short) 3);
        cell2.setCellValue("");
        cell2.setCellStyle(style);
        cell2 = row.createCell((short) 4);
        cell2.setCellValue("??");
        cell2.setCellStyle(style);

        row = sheet.createRow(3);
        row.createCell((short) 0).setCellValue(v.getKm());
        row.createCell((short) 1).setCellValue(v.getOil_percent());
        long over_km = (v.getReturn_km() - v.getKm()) > 0 ? (v.getReturn_km() - v.getKm()) : 0;
        row.createCell((short) 2).setCellValue(over_km);
        row.createCell((short) 3).setCellValue("");
        row.createCell((short) 4).setCellValue("");

        row = sheet.createRow(4);
        HSSFCell cell4 = row.createCell((short) 0);
        cell4.setCellValue("");
        cell4.setCellStyle(style);
        cell4 = row.createCell((short) 1);
        cell4.setCellValue("?");
        cell4.setCellStyle(style);
        cell4 = row.createCell((short) 2);
        cell4.setCellValue("");
        cell4.setCellStyle(style);
        cell4 = row.createCell((short) 3);
        cell4.setCellValue("");
        cell4.setCellStyle(style);
        cell4 = row.createCell((short) 4);
        cell4.setCellValue("");
        cell4.setCellStyle(style);

        row = sheet.createRow(5);
        row.createCell((short) 0).setCellValue(v.getReturn_km());
        row.createCell((short) 1).setCellValue(v.getRevert_oil_percent());
        long over_oil = (v.getOil_percent() - v.getRevert_oil_percent()) > 0
                ? (v.getOil_percent() - v.getRevert_oil_percent())
                : 0;
        row.createCell((short) 2).setCellValue(over_oil);
        row.createCell((short) 3).setCellValue("");
        row.createCell((short) 4).setCellValue(v.getActually_price());
    }

    // ?
    try {

        String path = appProps.get("contrace.over.download.path") + contrace_no + ".xls";
        FileOutputStream fout = new FileOutputStream(path);
        wb.write(fout);
        fout.close();

        ServletOutputStream out;
        //File(?download.pdf)
        File file = new File(path);

        try {
            FileInputStream inputStream = new FileInputStream(file);
            //3.response?ServletOutputStream(out)
            out = response.getOutputStream();
            int b = 0;
            byte[] buffer = new byte[512];
            while (b != -1) {
                b = inputStream.read(buffer);
                //4.?(out)
                out.write(buffer, 0, b);
            }
            inputStream.close();
            out.close();
            out.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

}

From source file:com.carfinance.module.common.controller.DocumentDownloadController.java

/**
 * ??//from   ww w.  j av a  2  s.  c  o m
 * @param model
 * @param request
 * @param response
 */
@RequestMapping(value = "/pdfhunchecontrace", method = RequestMethod.GET)
public void pdfHuncheContrace(Model model, HttpServletRequest request, HttpServletResponse response) {
    String contrace_id_str = request.getParameter("contrace_id");

    String org_id = "";
    String contrace_no = "";
    String customer_name = "";
    String vehicle_id = "";
    String daily_available_km = "";

    VehicleContraceInfo vehicleContraceInfo = this.vehicleServiceManageService
            .getVehicleContraceInfoById(Long.valueOf(contrace_id_str));
    if (vehicleContraceInfo != null) {
        org_id = String.valueOf(vehicleContraceInfo.getOrg_id());
        contrace_no = vehicleContraceInfo.getContrace_no();
        customer_name = vehicleContraceInfo.getCustomer_name();
        daily_available_km = vehicleContraceInfo.getDaily_available_km() + "";
    } else {
        PropertyContraceInfo propertyContraceInfo = this.vehicleServiceManageService
                .getPropertyContraceInfoById(Long.valueOf(contrace_id_str));
        if (propertyContraceInfo != null) {
            org_id = String.valueOf(propertyContraceInfo.getOrg_id());
            contrace_no = propertyContraceInfo.getContrace_no();
            customer_name = propertyContraceInfo.getCustomer_name();
        }
    }

    List<VehicleContraceVehsInfo> vehicleContraceVehsInfoList = this.vehicleServiceManageService
            .getVehicleContraceVehsListByContraceId(Long.valueOf(contrace_id_str));

    //1.ContentType
    response.setContentType("multipart/form-data");
    //2.????(??a.pdf)
    response.setHeader("Content-Disposition", "attachment;fileName=" + contrace_no + ".pdf");

    Document pdfDoc = new Document(PageSize.A4, 50, 50, 50, 50);
    // ?? pdf ?
    try {
        BaseFont bfChinese = BaseFont.createFont("STSongStd-Light", "UniGB-UCS2-H", false);

        Font bold_fontChinese = new Font(bfChinese, 18, Font.BOLD, BaseColor.BLACK);
        Font normal_fontChinese = new Font(bfChinese, 12, Font.NORMAL, BaseColor.BLACK);
        Font normal_desc_fontChinese = new Font(bfChinese, 6, Font.NORMAL, BaseColor.BLACK);

        FileOutputStream pdfFile = new FileOutputStream(
                new File(appProps.get("hunche.contrace.download.path") + contrace_no + ".pdf"));
        // pdf ?
        Paragraph paragraph1 = new Paragraph("???", bold_fontChinese);
        paragraph1.setAlignment(Element.ALIGN_CENTER);

        Paragraph paragraph2 = new Paragraph(
                "???", normal_fontChinese);
        Paragraph paragraph3 = new Paragraph("" + customer_name + " (",
                normal_fontChinese);
        Paragraph paragraph4 = new Paragraph(
                "?????________________???",
                normal_fontChinese);
        Paragraph paragraph5 = new Paragraph("??????",
                normal_fontChinese);
        // table
        PdfPTable table = new PdfPTable(4);
        table.setWidthPercentage(100);
        table.setHorizontalAlignment(PdfPTable.ALIGN_LEFT);
        PdfPCell cell = new PdfPCell();
        cell.setHorizontalAlignment(PdfPCell.ALIGN_CENTER);
        // 
        cell.setPhrase(new Paragraph("?", normal_fontChinese));
        table.addCell(cell);
        cell.setPhrase(new Paragraph("", normal_fontChinese));
        table.addCell(cell);
        cell.setPhrase(new Paragraph("?/", normal_fontChinese));
        table.addCell(cell);
        cell.setPhrase(new Paragraph("?", normal_fontChinese));
        table.addCell(cell);
        // ?
        for (VehicleContraceVehsInfo v : vehicleContraceVehsInfoList) {

            PdfPCell newcell = new PdfPCell();
            newcell.setHorizontalAlignment(PdfPCell.ALIGN_CENTER);
            newcell.setPhrase(new Paragraph("1", normal_fontChinese));
            table.addCell(newcell);
            newcell.setPhrase(new Paragraph(v.getModel(), normal_fontChinese));
            table.addCell(newcell);
            newcell.setPhrase(new Paragraph(v.getDaily_price() + "", normal_fontChinese));
            table.addCell(newcell);
            newcell.setPhrase(new Paragraph(daily_available_km, normal_fontChinese));
            table.addCell(newcell);
        }

        Paragraph paragraph6 = new Paragraph(
                "??_________________________________________________________________",
                normal_fontChinese);
        Paragraph paragraph7 = new Paragraph(
                "____________________________?______",
                normal_fontChinese);
        Paragraph paragraph8 = new Paragraph("????", normal_fontChinese);
        Paragraph paragraph9 = new Paragraph(
                "???________________________???________________________",
                normal_fontChinese);
        Paragraph paragraph10 = new Paragraph("?", normal_fontChinese);
        Paragraph paragraph11 = new Paragraph(
                "???????????????",
                normal_fontChinese);
        Paragraph paragraph12 = new Paragraph("?", normal_fontChinese);
        Paragraph paragraph13 = new Paragraph(
                "??????????????",
                normal_fontChinese);
        Paragraph paragraph14 = new Paragraph(
                "?????????",
                normal_fontChinese);
        Paragraph paragraph15 = new Paragraph("?????",
                normal_fontChinese);
        Paragraph paragraph16 = new Paragraph(
                "(/)                                       (/)",
                normal_fontChinese);
        Paragraph paragraph17 = new Paragraph(
                "                                                      ??", normal_fontChinese);
        Paragraph paragraph18 = new Paragraph(
                "??                                               ??  ",
                normal_fontChinese);
        Paragraph paragraph19 = new Paragraph(
                "                                                      201          ",
                normal_fontChinese);

        //  Document ?File  PdfWriter ?
        PdfWriter.getInstance(pdfDoc, pdfFile);
        pdfDoc.open(); //  Document 

        // ??
        pdfDoc.add(paragraph1);
        pdfDoc.add(new Chunk("\n\n"));
        pdfDoc.add(paragraph2);
        pdfDoc.add(paragraph3);
        pdfDoc.add(paragraph4);
        pdfDoc.add(paragraph5);
        pdfDoc.add(table);
        pdfDoc.add(paragraph6);
        pdfDoc.add(paragraph7);
        pdfDoc.add(paragraph8);
        pdfDoc.add(paragraph9);
        pdfDoc.add(paragraph10);
        pdfDoc.add(paragraph11);
        pdfDoc.add(paragraph12);
        pdfDoc.add(paragraph13);
        pdfDoc.add(paragraph14);
        pdfDoc.add(paragraph15);
        pdfDoc.add(paragraph16);
        pdfDoc.add(paragraph17);
        pdfDoc.add(paragraph18);
        pdfDoc.add(paragraph19);

        pdfDoc.close();

        ServletOutputStream out;
        //File(?download.pdf)
        File file = new File(appProps.get("hunche.contrace.download.path") + contrace_no + ".pdf");

        try {
            FileInputStream inputStream = new FileInputStream(file);
            //3.response?ServletOutputStream(out)
            out = response.getOutputStream();
            int b = 0;
            byte[] buffer = new byte[512];
            while (b != -1) {
                b = inputStream.read(buffer);
                //4.?(out)
                out.write(buffer, 0, b);
            }
            inputStream.close();
            out.close();
            out.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

From source file:org.akaza.openclinica.control.core.SecureController.java

License:asdf

public void dowloadFile(File f, String contentType) throws Exception {

    response.setHeader("Content-disposition", "attachment; filename=\"" + f.getName() + "\";");
    response.setContentType("text/xml");
    response.setHeader("Pragma", "public");

    ServletOutputStream op = response.getOutputStream();

    DataInputStream in = null;/* w w  w .  ja v a  2s . c o m*/
    try {
        response.setContentType("text/xml");
        response.setHeader("Pragma", "public");
        response.setContentLength((int) f.length());

        byte[] bbuf = new byte[(int) f.length()];
        in = new DataInputStream(new FileInputStream(f));
        int length;
        while (in != null && (length = in.read(bbuf)) != -1) {
            op.write(bbuf, 0, length);
        }

        in.close();
        op.flush();
        op.close();
    } catch (Exception ee) {
        ee.printStackTrace();
    } finally {
        if (in != null) {
            in.close();
        }
        if (op != null) {
            op.close();
        }
    }
}

From source file:org.etudes.tool.melete.ExportMeleteModules.java

/**
 * writes the zip file to browser//  ww w .  j  ava2 s. c  o m
 *
 * @param file -
 *            zip file to download
 * @throws Exception
 */
private void download(File file) throws Exception {
    FileInputStream fis = null;
    ServletOutputStream out = null;
    try {
        String disposition = "attachment; filename=\"" + file.getName() + "\"";
        fis = new FileInputStream(file);

        FacesContext cxt = FacesContext.getCurrentInstance();
        ExternalContext context = cxt.getExternalContext();
        HttpServletResponse response = (HttpServletResponse) context.getResponse();
        response.setContentType("application/zip"); // application/zip
        response.addHeader("Content-Disposition", disposition);
        // Contributed by Diego for ME-233
        response.setHeader("Pragma", "public");
        response.setHeader("Cache-Control", "public, post-check=0, must-revalidate, pre-check=0");

        out = response.getOutputStream();

        int len;
        byte buf[] = new byte[102400];
        while ((len = fis.read(buf)) > 0) {
            out.write(buf, 0, len);
        }

        out.flush();
    } catch (IOException e) {
        throw e;
    } finally {
        try {
            if (out != null)
                out.close();
        } catch (IOException e1) {
        }

        try {
            if (fis != null)
                fis.close();
        } catch (IOException e2) {
        }
    }
}

From source file:net.urosk.reportEngine.ReportsServlet.java

public void handleRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    String reportDesign = request.getParameter("__report");
    String type = request.getParameter("__format");
    String outputFilename = request.getParameter("__filename");
    String attachment = request.getParameter("attachment");

    //check parameters
    StringBuffer msg = new StringBuffer();

    // checkers//from  w  w w .j  a v a 2 s.  c o m
    if (isEmpty(reportDesign)) {
        msg.append("<BR>__report can not be empty");
    }

    OutputType outputType = null;

    try {
        outputType = OutputType.valueOf(type.toUpperCase());
    } catch (Exception e) {
        msg.append("Undefined report __format: " + type + ". Set __format=" + OutputType.values());
    }

    // checkers
    if (isEmpty(outputFilename)) {
        msg.append("<BR>__filename can not be empty");
    }

    try {

        ServletOutputStream out = response.getOutputStream();
        ServletContext context = request.getSession().getServletContext();

        // output error
        if (StringUtils.isNotEmpty(msg.toString())) {
            out.print(msg.toString());
            return;
        }

        ReportDef def = new ReportDef();
        def.setDesignFileName(reportDesign);
        def.setOutputType(outputType);

        @SuppressWarnings("unchecked")
        Map<String, String[]> params = request.getParameterMap();
        Iterator<String> i = params.keySet().iterator();

        while (i.hasNext()) {
            String key = i.next();
            String value = params.get(key)[0];
            def.getParameters().put(key, value);
        }

        try {

            String createdFile = birtReportEngine.createReport(def);

            File file = new File(createdFile);

            String mimetype = context.getMimeType(file.getAbsolutePath());

            String inlineOrAttachment = (attachment != null) ? "attachment" : "inline";

            response.setContentType((mimetype != null) ? mimetype : "application/octet-stream");
            response.setContentLength((int) file.length());
            response.setHeader("Content-Disposition",
                    inlineOrAttachment + "; filename=\"" + outputFilename + "\"");

            DataInputStream in = new DataInputStream(new FileInputStream(file));

            byte[] bbuf = new byte[1024];
            int length;
            while ((in != null) && ((length = in.read(bbuf)) != -1)) {
                out.write(bbuf, 0, length);
            }

            in.close();

        } catch (Exception e) {

            logger.error(e, e);
            out.print(e.getMessage());
        } finally {
            out.flush();
            out.close();
        }

        logger.info("Free memory: " + (Runtime.getRuntime().freeMemory() / 1024L * 1024L));

    } catch (Exception e) {
        logger.error(e, e);

    } finally {

    }

}

From source file:com.topsec.tsm.sim.asset.web.AssetListController.java

/**
 * ?//from  ww  w  . j av a 2  s . c  o m
 * @param request
 * @param response
 * @throws Exception
 */
@RequestMapping("downloadAssetModel")
public void downloadAssetModel(HttpServletRequest request, HttpServletResponse response) throws Exception {
    try {
        InputStream inputStream = this.getClass().getClassLoader()
                .getResourceAsStream("resource/asset/assetModel.xls");
        response.setContentType("application/octet-stream");
        response.setHeader("Content-Disposition", "attachment; filename=\"assetModel.xls\"");
        ServletOutputStream out = response.getOutputStream();
        byte[] b = new byte[1024];
        int len = -1;
        while ((len = inputStream.read(b)) != -1) {
            out.write(b, 0, len);
        }
        out.flush();
        inputStream.close();
    } catch (Exception e) {
    }
}

From source file:com.carfinance.module.common.controller.DocumentDownloadController.java

/**
 * ???PDF//from  w w  w . java2  s.com
 * @param model
 * @param request
 * @param response
 */
@RequestMapping(value = "/pdfcontrace", method = RequestMethod.GET)
public void pdfContrace(Model model, HttpServletRequest request, HttpServletResponse response) {
    String contrace_id_str = request.getParameter("contrace_id");
    long contrace_type = Long.valueOf(request.getParameter("contrace_type"));//??1-2-?
    long vehicle_contrace_id = Long.valueOf(request.getParameter("vehicle_contrace_id"));

    String org_id = "";
    String contrace_no = "";
    String customer_name = "";
    String license_plate = "";
    String vehicle_model = "";
    String engine_no = "";
    String carframe_no = "";
    double guide_price = 0;
    String color = "";
    String begin_time = "";
    String end_time = "";
    String driving_user_name = "";
    String driving_user_license_no = "";
    String daily_price = "";
    String daily_available_km = "";
    String over_km_price = "";
    String over_hour_price = "";
    String month_price = "";
    String month_available_km = "";
    String pre_payment = "";
    String deposit = "";
    String monthly_day = "";
    String vehicle_id = "";

    if (contrace_type == 1) {
        VehicleContraceInfo vehicleContraceInfo = this.vehicleServiceManageService
                .getVehicleContraceInfoById(Long.valueOf(contrace_id_str));
        if (vehicleContraceInfo != null) {
            org_id = String.valueOf(vehicleContraceInfo.getOrg_id());
            contrace_no = vehicleContraceInfo.getContrace_no();
            customer_name = vehicleContraceInfo.getCustomer_name();

            //                List<VehicleContraceVehsInfo> vehsList = this.vehicleServiceManageService.getVehicleContraceVehsListByContraceId(vehicleContraceInfo.getId());
            //                if(vehsList != null) {
            //                    VehicleContraceVehsInfo vehsInfo = vehsList.get(0);
            VehicleContraceVehsInfo vehsInfo = this.vehicleServiceManageService
                    .getContraceVehicleByid(vehicle_contrace_id);
            VehicleInfo vehicleInfo = this.vehicleManageService.getVehicleInfoByid(vehsInfo.getVehicle_id());

            license_plate = vehicleInfo.getLicense_plate();
            vehicle_model = vehicleInfo.getModel();
            engine_no = vehicleInfo.getEngine_no();
            carframe_no = vehicleInfo.getCarframe_no();
            guide_price = vehicleInfo.getGuide_price();
            color = vehicleInfo.getColor();

            driving_user_name = vehsInfo.getDriving_user_name();
            driving_user_license_no = vehsInfo.getDriving_user_license_no();

            daily_price = vehicleInfo.getDaily_price() + "";
            vehicle_id = vehicleInfo.getId() + "";
            //                }

            begin_time = vehicleContraceInfo.getUse_begin();
            end_time = vehicleContraceInfo.getUse_end();

            daily_available_km = vehicleContraceInfo.getDaily_available_km() + "";
            over_km_price = vehicleContraceInfo.getOver_km_price() + "";
            over_hour_price = vehicleContraceInfo.getOver_hour_price() + "";
            month_price = vehicleContraceInfo.getMonth_price() + "";
            month_available_km = vehicleContraceInfo.getMonth_available_km() + "";
            pre_payment = vehicleContraceInfo.getPre_payment() + "";
            deposit = vehicleContraceInfo.getDeposit() + "";
            monthly_day = vehicleContraceInfo.getMonthly_day() + "";
        }
    } else if (contrace_type == 2) {
        PropertyContraceInfo propertyContraceInfo = this.vehicleServiceManageService
                .getPropertyContraceInfoById(Long.valueOf(contrace_id_str));
        if (propertyContraceInfo != null) {
            org_id = String.valueOf(propertyContraceInfo.getOrg_id());
            contrace_no = propertyContraceInfo.getContrace_no();
            customer_name = propertyContraceInfo.getCustomer_name();
        }
    }
    //1.ContentType
    response.setContentType("multipart/form-data");
    //2.????(??a.pdf)
    response.setHeader("Content-Disposition", "attachment;fileName=" + contrace_no + "_" + vehicle_id + ".pdf");

    Document pdfDoc = new Document(PageSize.A4, 50, 50, 50, 50);
    // ?? pdf ?
    try {
        BaseFont bfChinese = BaseFont.createFont("STSongStd-Light", "UniGB-UCS2-H", false);

        Font bold_fontChinese = new Font(bfChinese, 18, Font.BOLD, BaseColor.BLACK);
        Font normal_fontChinese = new Font(bfChinese, 12, Font.NORMAL, BaseColor.BLACK);
        Font normal_desc_fontChinese = new Font(bfChinese, 6, Font.NORMAL, BaseColor.BLACK);

        FileOutputStream pdfFile = new FileOutputStream(new File(
                appProps.get("normal.contrace.download.path") + contrace_no + "_" + vehicle_id + ".pdf"));
        // pdf ?
        Paragraph paragraph1 = new Paragraph("???", bold_fontChinese);
        paragraph1.setAlignment(Element.ALIGN_CENTER);

        Chunk customer_name_underline = new Chunk(customer_name);
        customer_name_underline.setUnderline(1f, 3f);

        Chunk license_plate_underline = new Chunk(license_plate);
        license_plate_underline.setUnderline(1f, 3f);

        Chunk vehicle_model_underline = new Chunk(vehicle_model);
        vehicle_model_underline.setUnderline(1f, 3f);

        Chunk engine_no_underline = new Chunk(engine_no);
        engine_no_underline.setUnderline(1f, 3f);

        Chunk carframe_no_underline = new Chunk(carframe_no);
        carframe_no_underline.setUnderline(1f, 3f);

        Chunk guide_price_underline = new Chunk(guide_price / 10000 + "");
        guide_price_underline.setUnderline(1f, 3f);

        Chunk color_underline = new Chunk(color);
        color_underline.setUnderline(1f, 3f);

        Chunk begin_time_underline = new Chunk(begin_time);
        begin_time_underline.setUnderline(1f, 3f);

        Chunk end_time_underline = new Chunk(end_time);
        end_time_underline.setUnderline(1f, 3f);

        Chunk driving_user_name_underline = new Chunk(
                driving_user_name == null ? "___/___" : driving_user_name);
        driving_user_name_underline.setUnderline(1f, 3f);

        Chunk driving_user_license_no_underline = new Chunk(
                driving_user_license_no == null ? "_____/_____" : driving_user_license_no);
        driving_user_license_no_underline.setUnderline(1f, 3f);

        Chunk daily_price_underline = new Chunk(daily_price);
        daily_price_underline.setUnderline(1f, 3f);

        Chunk daily_available_km_underline = new Chunk(daily_available_km);
        daily_available_km_underline.setUnderline(1f, 3f);

        Chunk over_km_price_underline = new Chunk(over_km_price);
        over_km_price_underline.setUnderline(1f, 3f);

        Chunk over_hour_price_underline = new Chunk(over_hour_price);
        over_hour_price_underline.setUnderline(1f, 3f);

        Chunk month_price_underline = new Chunk(month_price == null ? "_____/_____" : month_price);
        month_price_underline.setUnderline(1f, 3f);

        Chunk month_available_km_underline = new Chunk(
                month_available_km == null ? "_____/_____" : month_available_km);
        month_available_km_underline.setUnderline(1f, 3f);

        Chunk pre_payment_underline = new Chunk(pre_payment);
        pre_payment_underline.setUnderline(1f, 3f);

        Chunk deposit_underline = new Chunk(deposit);
        deposit_underline.setUnderline(1f, 3f);

        Chunk monthly_day_underline = new Chunk(monthly_day == null ? "___/___" : monthly_day);
        monthly_day_underline.setUnderline(1f, 3f);

        Paragraph paragraph2 = new Paragraph(
                "???    ???"
                        + contrace_no,
                normal_fontChinese);
        Paragraph paragraph3 = new Paragraph("" + customer_name_underline
                + " (    20____________", normal_fontChinese);
        Paragraph paragraph4 = new Paragraph(
                "??? ??????????",
                normal_fontChinese);
        Paragraph paragraph5 = new Paragraph("???____"
                + license_plate_underline + "____?____" + vehicle_model_underline
                + "________" + color_underline + "____??____" + engine_no_underline
                + "____?____" + carframe_no_underline + "____??____"
                + guide_price_underline + "____", normal_fontChinese);
        Paragraph paragraph6 = new Paragraph("?____" + begin_time_underline
                + "____?____" + end_time_underline + "____",
                normal_fontChinese);
        Paragraph paragraph7 = new Paragraph("??____"
                + driving_user_name_underline + "____??____" + driving_user_license_no_underline
                + "____?", normal_fontChinese);
        Paragraph paragraph8 = new Paragraph("????", normal_fontChinese);
        Paragraph paragraph9 = new Paragraph("1????____" + daily_price_underline
                + "____??____" + daily_available_km_underline
                + "____??____" + over_km_price_underline
                + "____??____" + over_hour_price_underline
                + "____??30????____"
                + month_price_underline + "____??____" + month_available_km_underline
                + "____30",
                normal_fontChinese);
        Paragraph paragraph10 = new Paragraph(
                "2??????8:00---20:00",
                normal_fontChinese);
        Paragraph paragraph11 = new Paragraph(
                "3??????",
                normal_fontChinese);
        Paragraph paragraph12 = new Paragraph(
                "4????____" + pre_payment_underline
                        + "____??____"
                        + monthly_day_underline + "____?",
                normal_fontChinese);
        Paragraph paragraph13 = new Paragraph("5???____"
                + deposit_underline
                + "____(???)???????",
                normal_fontChinese);
        Paragraph paragraph14 = new Paragraph(
                "6????1%????????",
                normal_fontChinese);
        Image image = Image.getInstance(appProps.get("normal.contrace.download.path") + "chekuang.jpg");

        Paragraph paragraph15 = new Paragraph("?", normal_desc_fontChinese);
        Paragraph paragraph16 = new Paragraph(
                "1?????????",
                normal_desc_fontChinese);
        Paragraph paragraph17 = new Paragraph(
                "2????5000?200",
                normal_desc_fontChinese);
        Paragraph paragraph18 = new Paragraph(
                "3????",
                normal_desc_fontChinese);
        Paragraph paragraph19 = new Paragraph(
                "4???????????????",
                normal_desc_fontChinese);
        Paragraph paragraph20 = new Paragraph(
                "5?????????",
                normal_desc_fontChinese);
        Paragraph paragraph21 = new Paragraph(
                "6????????????",
                normal_desc_fontChinese);
        Paragraph paragraph22 = new Paragraph("?", normal_desc_fontChinese);
        Paragraph paragraph23 = new Paragraph(
                "1???????",
                normal_desc_fontChinese);
        Paragraph paragraph24 = new Paragraph(
                "2?????????????????????????",
                normal_desc_fontChinese);
        Paragraph paragraph25 = new Paragraph(
                "3????????????????????????",
                normal_desc_fontChinese);
        Paragraph paragraph26 = new Paragraph(
                "4?????????????????",
                normal_desc_fontChinese);
        Paragraph paragraph27 = new Paragraph(
                "5????????????????????",
                normal_desc_fontChinese);
        Paragraph paragraph28 = new Paragraph(
                "6?????????????????????620%?30%??????????????????????",
                normal_desc_fontChinese);
        Paragraph paragraph29 = new Paragraph(
                "7???????????",
                normal_desc_fontChinese);
        Paragraph paragraph30 = new Paragraph(
                "8????????",
                normal_desc_fontChinese);

        Paragraph paragraph31 = new Paragraph(
                "9??????????????????????",
                normal_desc_fontChinese);
        Paragraph paragraph32 = new Paragraph(
                "10????????????",
                normal_desc_fontChinese);
        Paragraph paragraph33 = new Paragraph(
                "11???????????500-1000",
                normal_desc_fontChinese);
        Paragraph paragraph34 = new Paragraph(
                "12??????????",
                normal_desc_fontChinese);
        Paragraph paragraph35 = new Paragraph(
                "13?????_________________________________7??????????\n",
                normal_desc_fontChinese);
        Paragraph paragraph36 = new Paragraph(
                "14?????????????????",
                normal_desc_fontChinese);
        Paragraph paragraph37 = new Paragraph(
                "15?????????5000????????????????400?500100????",
                normal_desc_fontChinese);
        Paragraph paragraph38 = new Paragraph(
                "16???????????????????????????",
                normal_desc_fontChinese);
        Paragraph paragraph39 = new Paragraph("?", normal_desc_fontChinese);
        Paragraph paragraph40 = new Paragraph(
                "1??????????????",
                normal_desc_fontChinese);
        Paragraph paragraph41 = new Paragraph(
                "2????????????",
                normal_desc_fontChinese);
        Paragraph paragraph42 = new Paragraph(
                "3????",
                normal_desc_fontChinese);
        Paragraph paragraph43 = new Paragraph(
                "4??????????50%?????????",
                normal_desc_fontChinese);
        Paragraph paragraph44 = new Paragraph(
                "5???????????????????",
                normal_desc_fontChinese);
        Paragraph paragraph45 = new Paragraph(
                "6???????????????",
                normal_desc_fontChinese);
        Paragraph paragraph46 = new Paragraph(
                "7?????????50%",
                normal_desc_fontChinese);
        Paragraph paragraph47 = new Paragraph(
                "8???7????????????",
                normal_desc_fontChinese);
        Paragraph paragraph48 = new Paragraph(
                "9???_____/?40??8????_____??",
                normal_desc_fontChinese);
        Paragraph paragraph49 = new Paragraph(
                "10?????___?????",
                normal_desc_fontChinese);
        Paragraph paragraph50 = new Paragraph(
                "11????",
                normal_desc_fontChinese);
        Paragraph paragraph51 = new Paragraph("??", normal_desc_fontChinese);
        Paragraph paragraph52 = new Paragraph(
                "1?????????20%????",
                normal_desc_fontChinese);
        Paragraph paragraph53 = new Paragraph(
                "2???????????????????",
                normal_desc_fontChinese);
        Paragraph paragraph54 = new Paragraph(
                "?????___________________\n",
                normal_desc_fontChinese);
        Paragraph paragraph55 = new Paragraph(
                "???????????????",
                normal_desc_fontChinese);
        Paragraph paragraph56 = new Paragraph(
                "???????",
                normal_desc_fontChinese);
        Paragraph paragraph57 = new Paragraph("?????????",
                normal_desc_fontChinese);
        Paragraph paragraph58 = new Paragraph(
                "???                     ?",
                normal_desc_fontChinese);
        Paragraph paragraph59 = new Paragraph(
                "                                           ???                            ??",
                normal_desc_fontChinese);

        //  Document ?File  PdfWriter ?
        PdfWriter.getInstance(pdfDoc, pdfFile);
        pdfDoc.open(); //  Document 

        // ??
        pdfDoc.add(paragraph1);
        pdfDoc.add(new Chunk("\n\n"));
        pdfDoc.add(paragraph2);
        pdfDoc.add(paragraph3);
        pdfDoc.add(paragraph4);
        pdfDoc.add(paragraph5);
        pdfDoc.add(paragraph6);
        pdfDoc.add(paragraph7);
        pdfDoc.add(paragraph8);
        pdfDoc.add(paragraph9);
        pdfDoc.add(paragraph10);
        pdfDoc.add(paragraph11);
        pdfDoc.add(paragraph12);
        pdfDoc.add(paragraph13);
        pdfDoc.add(paragraph14);
        pdfDoc.add(image);

        pdfDoc.newPage();
        pdfDoc.add(paragraph15);
        pdfDoc.add(paragraph16);
        pdfDoc.add(paragraph17);
        pdfDoc.add(paragraph18);
        pdfDoc.add(paragraph19);
        pdfDoc.add(paragraph20);
        pdfDoc.add(paragraph21);
        pdfDoc.add(paragraph22);
        pdfDoc.add(paragraph23);
        pdfDoc.add(paragraph24);
        pdfDoc.add(paragraph25);
        pdfDoc.add(paragraph26);
        pdfDoc.add(paragraph27);
        pdfDoc.add(paragraph28);
        pdfDoc.add(paragraph29);
        pdfDoc.add(paragraph30);
        pdfDoc.add(paragraph31);
        pdfDoc.add(paragraph32);
        pdfDoc.add(paragraph33);
        pdfDoc.add(paragraph34);
        pdfDoc.add(paragraph35);
        pdfDoc.add(paragraph36);
        pdfDoc.add(paragraph37);
        pdfDoc.add(paragraph38);
        pdfDoc.add(paragraph39);
        pdfDoc.add(paragraph40);
        pdfDoc.add(paragraph41);
        pdfDoc.add(paragraph42);
        pdfDoc.add(paragraph43);
        pdfDoc.add(paragraph44);
        pdfDoc.add(paragraph45);
        pdfDoc.add(paragraph46);
        pdfDoc.add(paragraph47);
        pdfDoc.add(paragraph48);
        pdfDoc.add(paragraph49);
        pdfDoc.add(paragraph50);
        pdfDoc.add(paragraph51);
        pdfDoc.add(paragraph52);
        pdfDoc.add(paragraph53);
        pdfDoc.add(paragraph54);
        pdfDoc.add(paragraph55);
        pdfDoc.add(paragraph56);
        pdfDoc.add(paragraph57);
        pdfDoc.add(paragraph58);
        pdfDoc.add(paragraph59);

        pdfDoc.close();

        ServletOutputStream out;
        //File(?download.pdf)
        File file = new File(
                appProps.get("normal.contrace.download.path") + contrace_no + "_" + vehicle_id + ".pdf");

        try {
            FileInputStream inputStream = new FileInputStream(file);
            //3.response?ServletOutputStream(out)
            out = response.getOutputStream();
            int b = 0;
            byte[] buffer = new byte[512];
            while (b != -1) {
                b = inputStream.read(buffer);
                //4.?(out)
                out.write(buffer, 0, b);
            }
            inputStream.close();
            out.close();
            out.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    }
}