/** * <br> * [機 能] 添付ファイルの名称を取得します。 <br> * [解 説] <br> * [備 考] * * @param tempDir 添付ディレクトリPATH * @return String ファイル名 * @throws IOToolsException 添付ファイルへのアクセスに失敗 */ private String __getFileName(String tempDir) throws IOToolsException { String ret = null; List<String> fileList = IOTools.getFileNames(tempDir); if (fileList != null) { for (int i = 0; i < fileList.size(); i++) { // ファイル名を取得 String fileName = fileList.get(i); if (!fileName.endsWith(GSConstCommon.ENDSTR_OBJFILE)) { continue; } // オブジェクトファイルを取得 ObjectFile objFile = new ObjectFile(tempDir, fileName); Object fObj = objFile.load(); if (fObj == null) { continue; } Cmn110FileModel fMdl = (Cmn110FileModel) fObj; ret = fMdl.getFileName(); if (ret != null) { return ret; } } } log__.debug("添付ファイルの名称 = " + ret); return ret; }
/** * <br> * [機 能] 送信メール情報の添付ファイル一覧を取得する <br> * [解 説] <br> * [備 考] * * @param tempRootDir テンポラリルートディレクトリ * @param reqMdl リクエスト情報 * @return 添付ファイル情報 * @throws IOToolsException 添付ファイル情報取得時に例外発生 */ private List<MailTempFileModel> __getSendMailFileData(String tempRootDir, RequestModel reqMdl) throws IOToolsException { List<MailTempFileModel> fileDataList = new ArrayList<MailTempFileModel>(); String tempDir = getSendTempDir(tempRootDir, reqMdl); List<String> fileList = IOTools.getFileNames(tempDir); if (fileList != null && !fileList.isEmpty()) { Cmn110FileModel tempFileModel = null; CommonBiz cmnBiz = new CommonBiz(); for (String fileName : fileList) { if (!fileName.endsWith(GSConstCommon.ENDSTR_OBJFILE)) { continue; } // オブジェクトファイルを取得 ObjectFile objFile = new ObjectFile(tempDir, fileName); Object fObj = objFile.load(); if (fObj == null) { continue; } tempFileModel = (Cmn110FileModel) fObj; MailTempFileModel sendFileData = new MailTempFileModel(); sendFileData.setFileName(tempFileModel.getFileName()); sendFileData.setFileSizeDsp( cmnBiz.getByteSizeString(new File(tempDir + tempFileModel.getSaveFileName()).length())); fileDataList.add(sendFileData); } } return fileDataList; }
/** * <br> * [機 能] 添付ファイルダウンロードの処理 <br> * [解 説] <br> * [備 考] * * @param map アクションマッピング * @param form アクションフォーム * @param req リクエスト * @param res レスポンス * @param con コネクション * @throws SQLException SQL実行例外 * @throws Exception 実行時例外 * @return ActionForward */ private ActionForward __doDownLoad( ActionMapping map, Rng020Form form, HttpServletRequest req, HttpServletResponse res, Connection con) throws SQLException, Exception { RequestModel reqMdl = getRequestModel(req); CommonBiz cmnBiz = new CommonBiz(); String tempDir = cmnBiz.getTempDir(getTempPath(req), RngConst.PLUGIN_ID_RINGI, reqMdl); Rng020Biz biz = new Rng020Biz(reqMdl); tempDir = biz.getTemplateFileDir(tempDir); String fileId = form.getRng020TemplateFileId(); // オブジェクトファイルを取得 ObjectFile objFile = new ObjectFile(tempDir, fileId.concat(GSConstCommon.ENDSTR_OBJFILE)); Object fObj = objFile.load(); Cmn110FileModel fMdl = (Cmn110FileModel) fObj; // 添付ファイル保存用のパスを取得する(フルパス) String filePath = tempDir + fileId.concat(GSConstCommon.ENDSTR_SAVEFILE); filePath = IOTools.replaceFileSep(filePath); GsMessage gsMsg = new GsMessage(reqMdl); String msg = gsMsg.getMessage("cmn.download"); // ログ出力処理 RngBiz rngBiz = new RngBiz(con); rngBiz.outPutLog(map, msg, GSConstLog.LEVEL_INFO, fMdl.getFileName(), reqMdl); // 時間のかかる処理の前にコネクションを破棄 JDBCUtil.closeConnectionAndNull(con); // ファイルをダウンロードする TempFileUtil.downloadAtachment(req, res, filePath, fMdl.getFileName(), Encoding.UTF_8); return null; }
/** * <br> * [機 能] 送信メール情報を取得する <br> * [解 説] <br> * [備 考] * * @param con コネクション * @param reqMdl リクエスト情報 * @param tempRootDir テンポラリルートディレクトリ * @return パラメータ情報 * @throws SQLException SQL実行時例外 * @throws IOToolsException 送信メール情報の読み込みに失敗 */ public Wml012ParamModel getInitData(Connection con, RequestModel reqMdl, String tempRootDir) throws SQLException, IOToolsException { File sendMailDataPath = __getSaveFilePath(reqMdl, tempRootDir); Wml012ParamModel paramMdl = null; if (sendMailDataPath.exists()) { ObjectFile objFile = new ObjectFile(sendMailDataPath.getParent(), sendMailDataPath.getName()); paramMdl = (Wml012ParamModel) objFile.load(); Map<String, String> domainMap = new HashMap<String, String>(); domainType__ = 0; paramMdl.setWml012ToList(__createAddressList(paramMdl.getWml010sendAddressTo(), domainMap)); paramMdl.setWml012CcList(__createAddressList(paramMdl.getWml010sendAddressCc(), domainMap)); paramMdl.setWml012BccList(__createAddressList(paramMdl.getWml010sendAddressBcc(), domainMap)); paramMdl.setWml012ViewBody(paramMdl.getWml010svSendContent()); if (paramMdl.getWml010sendMailHtml() != Wml010Const.SEND_HTMLMAIL_HTML) { paramMdl.setWml012ViewBody( StringUtilHtml.transToHTmlForTextArea(paramMdl.getWml012ViewBody())); } GsMessage gsMsg = new GsMessage(reqMdl); String sendPlanDate = null; int sendAccountSid = paramMdl.getWml010sendAccount(); if (paramMdl.getSendMailPlanType() == Wml010Form.SENDMAILPLAN_TYPE_LATER) { sendPlanDate = gsMsg.getMessage( "cmn.view.date", new String[] { paramMdl.getWml010sendMailPlanDateYear(), paramMdl.getWml010sendMailPlanDateMonth(), paramMdl.getWml010sendMailPlanDateDay(), paramMdl.getWml010sendMailPlanDateHour(), paramMdl.getWml010sendMailPlanDateMinute() }); } else { int timeSendMinute = 0; boolean timsentImm = paramMdl.getWml010sendMailPlanImm() == Wml010Const.SENDPLAN_IMM; WmlAdmConfDao admConfDao = new WmlAdmConfDao(con); WmlAdmConfModel wmlAdmConf = admConfDao.selectAdmData(); if (wmlAdmConf.getWadPermitKbn() == GSConstWebmail.PERMIT_ADMIN) { // 管理者設定 時間差送信 = 有効 に設定されている // かつ、画面上で"即時送信"が選択されていない場合 if (wmlAdmConf.getWadTimesent() == GSConstWebmail.WAC_TIMESENT_LATER || (wmlAdmConf.getWadTimesent() == GSConstWebmail.WAC_TIMESENT_INPUT && !timsentImm)) { timeSendMinute = 5; } } else { WmlAccountDao wacDao = new WmlAccountDao(con); WmlAccountModel wacMdl = wacDao.select(sendAccountSid); if (wacMdl.getWacTimesent() == GSConstWebmail.WAC_TIMESENT_INPUT) { if (!timsentImm) { timeSendMinute = 5; } } else { WmlBiz wmlBiz = new WmlBiz(); timeSendMinute = wmlBiz.getTimeSentMinute(con, sendAccountSid); } } if (timeSendMinute > 0) { sendPlanDate = gsMsg.getMessage("wml.242", new String[] {Integer.toString(timeSendMinute)}); } else { sendPlanDate = gsMsg.getMessage("wml.wml012.01"); } } paramMdl.setWml012SendPlanDate(sendPlanDate); paramMdl.setWml012TempfileList(__getSendMailFileData(tempRootDir, reqMdl)); // [宛先、添付ファイルの確認]を設定 setAccountSendConf(con, paramMdl, sendAccountSid); } return paramMdl; }
/** * <br> * [機 能] 送信メール情報を保存する <br> * [解 説] <br> * [備 考] * * @param paramMdl パラメータ情報 * @param reqMdl リクエスト情報 * @param tempRootDir テンポラリルートディレクトリ * @throws IOToolsException 送信メール情報の読み込みに失敗 */ public void saveSendMailData(Wml012ParamModel paramMdl, RequestModel reqMdl, String tempRootDir) throws IOToolsException { File sendMailDataPath = __getSaveFilePath(reqMdl, tempRootDir); ObjectFile objFile = new ObjectFile(sendMailDataPath.getParent(), sendMailDataPath.getName()); objFile.save(paramMdl); }
/** * <br> * [機 能] 入力チェックを行う <br> * [解 説] <br> * [備 考] * * @param reqMdl リクエスト情報 * @param tempDir 添付DIR * @param con DBコネクション * @param netSid ネットワークSID * @param mode インポートモード * @return エラー * @throws SQLException SQL実行例外 * @throws IOToolsException SQL実行例外 * @throws Exception 実行例外 */ public ActionErrors validateCheck( RequestModel reqMdl, String tempDir, Connection con, int netSid, String mode) throws IOToolsException, SQLException, Exception { log__.debug("=== 入力チェック ==="); ActionErrors errors = new ActionErrors(); GsMessage gsMsg = new GsMessage(reqMdl); String textSelectFile = gsMsg.getMessage("cmn.capture.file"); String textCsvFile = gsMsg.getMessage("cmn.csv.file.format"); // インポートファイルチェック // テンポラリディレクトリにあるファイル名称を取得 List<String> fileList = IOTools.getFileNames(tempDir); String saveFileName = ""; String baseFileName = ""; String eprefix = "inputFile."; if (fileList == null) { ActionMessage msg = new ActionMessage("error.select.required.text", textSelectFile); StrutsUtil.addMessage(errors, msg, eprefix + "error.select.required.text"); } else { for (int i = 0; i < fileList.size(); i++) { // ファイル名を取得 String fileName = fileList.get(i); if (!fileName.endsWith(GSConstCommon.ENDSTR_OBJFILE)) { continue; } // オブジェクトファイルを取得 ObjectFile objFile = new ObjectFile(tempDir, fileName); Object fObj = objFile.load(); if (fObj == null) { continue; } Cmn110FileModel fMdl = (Cmn110FileModel) fObj; saveFileName = fMdl.getSaveFileName(); baseFileName = fMdl.getFileName(); } boolean csvError = false; // 複数選択エラー if (fileList.size() > 2) { ActionMessage msg = new ActionMessage("error.input.notfound.file", textSelectFile); StrutsUtil.addMessage(errors, msg, eprefix + "error.input.notfound.file"); csvError = true; } else { // 拡張子チェック String strExt = StringUtil.getExtension(baseFileName); if (strExt == null || !strExt.toUpperCase().equals(".CSV")) { ActionMessage msg = new ActionMessage("error.select.required.text", textCsvFile); StrutsUtil.addMessage(errors, msg, eprefix + "error.select.required.text"); csvError = true; } } if (!csvError) { String fullPath = tempDir + saveFileName; ArrayList<String> ipadListCsv = new ArrayList<String>(); IpkCsvCheck csvCheck = new IpkCsvCheck(errors, con, netSid, mode, ipadListCsv, reqMdl); // CSVチェック csvCheck.isCsvDataOk(fullPath); } } return errors; }