- mediaValues.put("title",mediaTitle);
-
- if (fileName.toLowerCase().endsWith("rm")) {
- // this is video !!
- //theLog.printDebugInfo("--GOT VIDEO");
- EntityVideo entVideo = new EntityVideo(DatabaseVideos.getInstance());
- entVideo.setValues(mediaValues);
- mediaId = entVideo.insert();
- entVideo.setVideoData(mediaData);
- }
- else if (contentType.equals("image/jpeg") || contentType.equals("image/gif")) {
- // this is image !!
- mediaId = imageModule.add(mediaValues);
- EntityImage entImage = (EntityImage)imageModule.getById(mediaId);
-
- int fileType = -1;
- if (contentType.equals("image/jpeg")) fileType=0;
- if (contentType.equals("image/gif")) fileType=1;
- if (fileType>=0) {
- entImage.setImage(mediaData, fileType);
- // inserting content and media id in table content_x_media
- try{
- DatabaseContentToMedia.getInstance().addMedia(cid,mediaId);
- theLog.printError("setting content_x_media success");
- } catch (Exception e) {
- theLog.printError("setting content_x_media failed");
- }
+
+ mediaValues.put("title", mediaTitle);
+ mediaValues.put("date", StringUtil.date2webdbDate(new GregorianCalendar()));
+ mediaValues.put("to_publisher", "1"); // op user
+ mediaValues.put("to_media_folder", "7"); // op media_folder
+ mediaValues.put("is_produced", "0");
+ mediaValues.put("is_published","0");
+
+ //the where clause to find the media_type entry
+ //from the content-type.
+ //we use the media type entry to lookup the
+ //media Handler/Storage classes
+ String wc = " mime_type='"+contentType+"'";
+
+ EntityList mediaTypesList = DatabaseMediaType.getInstance().selectByWhereClause(wc);
+
+ String mediaTypeId = null;
+ String mediaStorageName = null;
+ String mediaHandlerName = null;
+
+ //if we found an entry matching the
+ //content-type int the table.
+ if (mediaTypesList.size() > 0) {
+ //get the class names from the media_type table.
+ mediaTypeId = mediaTypesList.elementAt(0).getId();
+ mediaStorageName = mediaTypesList.elementAt(0).getValue("tablename");
+ mediaHandlerName = mediaTypesList.elementAt(0).getValue("classname");
+ mediaValues.put("to_media_type",mediaTypeId);
+
+ //load the classes via reflection
+ String MediaId;
+ Entity mediaEnt = null;
+ try {
+ Class mediaStorageClass = Class.forName("mircoders.storage.Database"+mediaStorageName);
+ Method m = mediaStorageClass.getMethod("getInstance", null);
+ Database mediaStorage = (Database)m.invoke(null, null);
+ mediaEnt = (Entity)mediaStorage.getEntityClass().newInstance();
+ mediaEnt.setStorage(mediaStorage);
+ mediaEnt.setValues(mediaValues);
+ mediaId = mediaEnt.insert();
+
+ Class mediaHandlerClass = Class.forName("mir.media.MediaHandler"+mediaHandlerName);
+ MirMedia mediaHandler = (MirMedia)mediaHandlerClass.newInstance();
+ //save and store the media data/metadata
+ mediaHandler.set(mpReq.getMedia(), mediaEnt,mediaTypesList.elementAt(0));
+
+ //were done with mpReq at this point, dereference it.
+ //as it contains mucho mem. -mh 01.10.2001
+ mpReq=null;