<%@ page import="java.io.*" %> <%@ page import="java.util.*" %> <%@ page import="javax.mail.internet.MimeBodyPart" %> <%@ page import="javax.mail.MessagingException" %> <%@ page import="org.w3c.dom.*" %> <%@ page import="org.jafer.query.QueryBuilder" %> <%@ page import="org.jafer.record.Field" %> <%@ page import="javax.xml.transform.Templates" %> <%@ page import="org.jafer.util.xml.DOMFactory" %> <%@ page import="org.jafer.util.xml.XMLTransformer" %> <%@ page import="org.jafer.util.xml.XMLSerializer" %> <%@ page import="org.mdcog.config.MdcConfig" %> <%@ page import="org.mdcog.db.Persistor" %> <%@ page import="org.mdcog.databeans.ResultDisplayRow" %> <%@ page import="org.mdcog.server.UploadHandler" %> <%@ page import="org.mdcog.server.FileFormItem" %> <%@ page import="org.mdcog.util.*" %> <%@ page errorPage="error.jsp" %> <%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib uri="/WEB-INF/displaytag-12.tld" prefix="display" %> <%! // Declarations - functions supporting inline code public Map getRequestAttributes(HttpServletRequest request) { HashMap map = new HashMap(); Enumeration names = request.getAttributeNames(); while (names.hasMoreElements()) { String name = (String)names.nextElement(); Object obj = request.getAttribute(name); if (obj instanceof String) { map.put(name, obj); } } return map; } %><% // Instream code // get or init MdcConfig MdcConfig mdcConfig = (MdcConfig)session.getAttribute("mdcconfig"); if (mdcConfig == null) { mdcConfig = new MdcConfig(); session.setAttribute("mdcconfig",mdcConfig); } Persistor persistor = (Persistor)session.getAttribute("persistor"); if (persistor == null) { persistor = new Persistor(mdcConfig); session.setAttribute("persistor",persistor); } String upldmessage = ""; //String debugString = ""; String ctype = (String)request.getContentType(); if (ctype != null && ctype.startsWith("multipart/form-data")) { //System.out.println("Starting upload..."); BufferedInputStream bis = null; ByteArrayOutputStream baos = null; org.xmldb.api.base.Collection colCache = null; try { // process the multipart and get the uploaded file as a string - xmlstr String fileName = UploadHandler.processMultiPart(request); FileFormItem fileFormItem= (FileFormItem)request.getAttribute("file"); MimeBodyPart part = fileFormItem.getBodyPart(); String useruploadname = fileFormItem.getFileName(); //String fileName = fileFormItem.truncateFilename(); bis = new BufferedInputStream(part.getInputStream()); baos = new ByteArrayOutputStream(); int ch = bis.read(); while (ch != -1) { baos.write(ch); ch = bis.read(); } String xmlstr = baos.toString(); // check import format Map reqMap = getRequestAttributes(request); //System.out.println("reqMap:"+reqMap); String impformat = (String)reqMap.get("impformat"); String docId = ""; // now process the import file into a set of one or more MODS records depending on the // ormat chosen by the user Node outNode = null; if (impformat != null && impformat.equals("MODS")) { //System.out.println("Importing MODS"); Document doc = DOMFactory.parse(xmlstr); outNode = doc.getDocumentElement(); } else if (impformat != null && impformat.equals("ENDNOTEV7")) { //System.out.println("Importing ENDNOTE"); Document doc = DOMFactory.parse(xmlstr); File xslfile = new File(pageContext.getServletContext().getRealPath("/en7tomods.xsl")); Templates template = XMLTransformer.createTemplate(xslfile); Element rootNode = doc.getDocumentElement(); rootNode.normalize(); outNode = XMLTransformer.transform(rootNode, template); } else if (impformat != null && impformat.equals("ENDNOTEV8")) { //System.out.println("Importing ENDNOTE"); Document doc = DOMFactory.parse(xmlstr); File xslfile = new File(pageContext.getServletContext().getRealPath("/en8tomods.xsl")); Templates template = XMLTransformer.createTemplate(xslfile); Element rootNode = doc.getDocumentElement(); rootNode.normalize(); outNode = XMLTransformer.transform(rootNode, template); } else { throw new IOException("Import format not selected."); } int nimported = 0; if (outNode != null) { // StringWriter writer = new StringWriter(); // XMLSerializer.out(outNode, "xml", writer); // writer.flush(); // String resp = writer.toString(); // System.out.println("resp:"+resp); ArrayList resultList = new ArrayList(); NodeList l = ((Element)outNode).getElementsByTagName("mods"); colCache = persistor.getCacheCollection(); for (int i = 0; i < l.getLength(); i++) { Node nd = l.item(i); Map fieldsMap = ModsUtils.getFields((Element)nd); //For debugging =========================== //for (int k=0; k 0) { int tab = tabSet.getNextTabNumber(); tabSet.addResultList(impformat+"_"+tab, resultList, ""); //tabSet.addResultList(fileName+"("+impformat+")", resultList, null); //tabSet.addResultList(fileName, resultList, null); } } upldmessage = "File uploaded, records:"+nimported+" - Close this window to refresh Search window."; } catch (Exception e) { upldmessage = "Upload failed, error:"+e.toString(); } finally { if (bis != null) try { bis.close(); } catch (Exception e) {} if (baos != null) try { baos.close(); } catch (Exception e) {} if (colCache != null) try { colCache.close(); } catch (Exception ex) {} } } %> Import

Import List

Format
Import

<%=upldmessage%>