下载--保存(下载)文件到本地(.doc .jpg)

    public ActionForward downloadxsxz(ActionMapping mapping, ActionForm form,

            HttpServletRequest request, HttpServletResponse response)

    {

        /**

         * 获得待导出文件路径和自定义下载文件名

         */

        String filepath = request.getParameter("filepath");//英文名。doc

        String _expfname = request.getParameter("expfname");//中文名

        String houzhui = request.getParameter("houzhui");//英文名  。doc  .img

        _expfname = ExportAction.decodeBase64(_expfname,"UTF-8");



        /**

         * 文件名为空则直接跳出执行

         */

        if (filepath == null || "".equals(filepath.trim()))

            return null;

        /**

         * 格式化文件名

         */

        filepath = "e:/test/";



        /**

         * 取得路径配置   判断是那种类型

         * XsxzBysPicPath

         * XsxzBysDocPath

         */

        

        String _folder = "";

        

        if(   "doc".equals(houzhui)){

            _folder = SISConfigFactory.getIetConfig().get(XsxzBysDocPath);

        }else if("img".equals(houzhui)){

            _folder = SISConfigFactory.getIetConfig().get(XsxzBysPicPath);

        }

        

        File _fld = new File(_folder);

        if (!_fld.exists())

            _fld.mkdir();



        File file = new File(_folder + filepath);

        /**

         * 当没有配置自定义下载的文件名时,取硬盘文件名

         */

        if (_expfname == null || "".equals(_expfname.trim()))

            _expfname = file.getName();



        try

        {

            /**

             * 输出文件

             */

            FileInputStream in = new FileInputStream(file);

            response.setContentType("application/x-msdownload");

            response.setContentLength(in.available());

            response.setHeader("Content-Disposition", "attachment;" + "filename="

                    + java.net.URLEncoder.encode( _expfname, "UTF-8").replaceAll("\\+", " "));

            OutputStream out = response.getOutputStream();

            byte[] bb = new byte[1024];

            int a = -1;

            while ((a = in.read(bb)) != -1)

            {

                out.write(bb, 0, a);

            }

            out.close();

            in.close();

            /**

             * 输出结束后,删除硬盘上文件

             */

//            if (org.apache.commons.lang.StringUtils.isBlank(_deleteflag) && file.exists())

//                file.delete();

        }

        catch (Exception e)

        {

            e.printStackTrace();

        }

        return null;

    }

 

你可能感兴趣的:(jpg)