📄 dataevents.java
字号:
package org.ofbiz.content.data;import java.io.IOException;import java.io.OutputStream;import java.util.HashMap;import java.util.List;import java.util.Locale;import java.util.Map;import javax.servlet.ServletContext;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.ofbiz.base.util.Debug;import org.ofbiz.base.util.GeneralException;import org.ofbiz.base.util.UtilHttp;import org.ofbiz.base.util.UtilMisc;import org.ofbiz.base.util.UtilProperties;import org.ofbiz.base.util.UtilValidate;import org.ofbiz.entity.GenericDelegator;import org.ofbiz.entity.GenericEntityException;import org.ofbiz.entity.GenericPK;import org.ofbiz.entity.GenericValue;import org.ofbiz.service.GenericServiceException;import org.ofbiz.service.LocalDispatcher;/** * DataEvents Class * * @author <a href="mailto:byersa@automationgroups.com">Al Byers</a> * @version $Rev: 6995 $ * @since 3.0 * * */public class DataEvents { public static final String module = DataEvents.class.getName(); public static final String err_resource = "ContentErrorUiLabel"; public static String uploadImage(HttpServletRequest request, HttpServletResponse response) { return DataResourceWorker.uploadAndStoreImage(request, "dataResourceId", "imageData"); } /** Streams ImageDataResource data to the output. */ public static String serveImage(HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); ServletContext application = session.getServletContext(); GenericDelegator delegator = (GenericDelegator) request.getAttribute("delegator"); Map parameters = UtilHttp.getParameterMap(request); Debug.log("Img UserAgent - " + request.getHeader("User-Agent"), module); String dataResourceId = (String) parameters.get("imgId"); if (UtilValidate.isEmpty(dataResourceId)) { String errorMsg = "Error getting image record from db: " + " dataResourceId is empty"; Debug.logError(errorMsg, module); request.setAttribute("_ERROR_MESSAGE_", errorMsg); return "error"; } try { GenericValue dataResource = delegator.findByPrimaryKeyCache("DataResource", UtilMisc.toMap("dataResourceId", dataResourceId)); if (!"Y".equals(dataResource.getString("isPublic"))) { // now require login... GenericValue userLogin = (GenericValue) session.getAttribute("userLogin"); if (userLogin == null) { String errorMsg = "You must be logged in to download the Data Resource with ID [" + dataResourceId + "]"; Debug.logError(errorMsg, module); request.setAttribute("_ERROR_MESSAGE_", errorMsg); return "error"; } // make sure the logged in user can download this content; otherwise is a pretty big security hole for DataResource records... // TODO: should we restrict the roleTypeId? List contentAndRoleList = delegator.findByAnd("ContentAndRole", UtilMisc.toMap("partyId", userLogin.get("partyId"), "dataResourceId", dataResourceId)); if (contentAndRoleList.size() == 0) { String errorMsg = "You do not have permission to download the Data Resource with ID [" + dataResourceId + "], ie you are not associated with it."; Debug.logError(errorMsg, module); request.setAttribute("_ERROR_MESSAGE_", errorMsg); return "error"; } } String mimeType = DataResourceWorker.getMimeType(dataResource); //if (Debug.infoOn()) Debug.logInfo("in serveImage, imageType:" + imageType, module); // hack for IE and mime types String userAgent = request.getHeader("User-Agent"); if (userAgent.indexOf("MSIE") > -1) { Debug.log("Found MSIE changing mime type from - " + mimeType, module); mimeType = "application/octet-stream"; } if (mimeType != null) { response.setContentType(mimeType); } OutputStream os = response.getOutputStream(); DataResourceWorker.streamDataResource(os, delegator, dataResourceId, "", application.getInitParameter("webSiteId"), UtilHttp.getLocale(request), application.getRealPath("/")); os.flush(); } catch (GenericEntityException e) { String errMsg = "Error downloading digital product content: " + e.toString(); Debug.logError(e, errMsg, module); request.setAttribute("_ERROR_MESSAGE_", errMsg); return "error"; } catch (GeneralException e) { String errMsg = "Error downloading digital product content: " + e.toString(); Debug.logError(e, errMsg, module); request.setAttribute("_ERROR_MESSAGE_", errMsg); return "error"; } catch (IOException e) { String errMsg = "Error downloading digital product content: " + e.toString(); Debug.logError(e, errMsg, module); request.setAttribute("_ERROR_MESSAGE_", errMsg); return "error"; } return "success"; } /** Dual create and edit event. * Needed to make permission criteria available to services. */ public static String persistDataResource(HttpServletRequest request, HttpServletResponse response) { Map result = null; LocalDispatcher dispatcher = (LocalDispatcher) request.getAttribute("dispatcher"); GenericDelegator delegator = (GenericDelegator) request.getAttribute("delegator"); GenericValue userLogin = (GenericValue) request.getSession().getAttribute("userLogin"); Map paramMap = UtilHttp.getParameterMap(request); String dataResourceId = (String)paramMap.get("dataResourceId"); GenericValue dataResource = delegator.makeValue("DataResource", null); dataResource.setPKFields(paramMap); dataResource.setNonPKFields(paramMap); Map serviceInMap = new HashMap(dataResource); serviceInMap.put("userLogin", userLogin); String mode = (String)paramMap.get("mode"); Locale locale = UtilHttp.getLocale(request); if (mode != null && mode.equals("UPDATE")) { try { result = dispatcher.runSync("updateDataResource", serviceInMap); } catch (GenericServiceException e) { String errMsg = UtilProperties.getMessage(DataEvents.err_resource, "dataEvents.error_call_update_service", locale); String errorMsg = "Error calling the updateDataResource service." + e.toString(); Debug.logError(e, errorMsg, module); request.setAttribute("_ERROR_MESSAGE_", errMsg + e.toString()); return "error"; } } else { mode = "CREATE"; try { result = dispatcher.runSync("createDataResource", serviceInMap); } catch (GenericServiceException e) { String errMsg = UtilProperties.getMessage(DataEvents.err_resource, "dataEvents.error_call_create_service", locale); String errorMsg = "Error calling the createDataResource service." + e.toString(); Debug.logError(e, errorMsg, module); request.setAttribute("_ERROR_MESSAGE_", errMsg + e.toString()); return "error"; } dataResourceId = (String)result.get("dataResourceId"); dataResource.set("dataResourceId", dataResourceId); } // Save the primary key so that it can be used in a "quick pick" list later GenericPK pk = dataResource.getPrimaryKey(); HttpSession session = request.getSession(); //ContentManagementWorker.mruAdd(session, pk); String returnStr = "success"; if (mode.equals("CREATE") ) { // Set up return message to guide selection of follow on view request.setAttribute("dataResourceId", result.get("dataResourceId") ); String dataResourceTypeId = (String)serviceInMap.get("dataResourceTypeId"); if (dataResourceTypeId != null) { if (dataResourceTypeId.equals("ELECTRONIC_TEXT") || dataResourceTypeId.equals("IMAGE_OBJECT") ) { returnStr = dataResourceTypeId; } } } return returnStr; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -