<html><head>

<meta name="Generator" content="Novell Groupwise Client (Version 14.0.1  Build: 117118)">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head>
<body style="font: 10pt/normal Segoe UI; margin: 16px 16px 4px; font-size-adjust: none; font-stretch: normal;"><div class="GroupWiseMessageBody" id="GroupWiseSection_1442936723000_Andy.Reid@lshtm.ac.uk_E7E91160180E0000BAA6000000100002_"><div>On reflection, that may be more confusing than I first thought - I should have explained that I had to deal with manuscripts where there were several files per document - Main body, cover page, tables, figures, etc - and the&nbsp; file metadata was already in a database.&nbsp;If you are just working from one file per eprint, then you don't need the loop for building up the series of files, obviously.&nbsp; But I thought the XML templates might be useful.&nbsp; </div><div><br></div><div>Andy<br></div><div class="GroupWiseMessageBody" id="GroupWiseSection_1442934304000_Andy.Reid@lshtm.ac.uk_E7E91160180E0000BAA6000000100002_"><span class="GroupwiseReplyHeader">&gt;&gt;&gt; "Andy Reid" &lt;Andy.Reid@lshtm.ac.uk&gt; 22 September 2015 16:18 &gt;&gt;&gt;<br></span><div>Hi George,</div><div>Here's a chunk of PHP I put together recently to generate the documents/files section of an Eprints XML upload.&nbsp; This puts all the files into one document tag, which may or may not be waht you want to do -&nbsp;I'm not sure exactly how standard the mainfile configuration is on our system, but it seems to only allow the one file per document to be downloaded.&nbsp; So either you need to enclose each file in a separate document tag, or&nbsp;as I eventually did, zip all&nbsp;the files&nbsp;and push&nbsp;that up as one file.&nbsp; This version is the 'one document, many files'&nbsp;approach, but&nbsp;I can send you the Zip version as well if you like.</div><div><br></div><div>&lt;?php<br>function eprints_xml_OAfiles($row){&nbsp;&nbsp;&nbsp; # $row is the metadata values for this record<br><br>global $link;<br>global $dataset;<br>$docroot=$_SERVER['DOCUMENT_ROOT'];<br>$filebase="$docroot/publications/administration/....&nbsp; &lt;where the files live &gt; /";<br><br>&nbsp;<br>$pub_id = $row['pub_id'];<br>$oaPub_ID = $row['oaPub_ID'];&nbsp;<br><br>&nbsp;&nbsp; $PM= $row['pubmedid']&nbsp; ;&nbsp;&nbsp;&nbsp;<br>&nbsp;</div><div><br></div><div><br></div><div><br>&nbsp;$files_query = "SELECT<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; oaPub_ID,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; `oaManuscript_ID`,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; `oaPub_ID`,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; `content_oaManuscript`,&nbsp;&nbsp; # Manuscript<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; `file_oaManuscript`,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; `file_oaManuscript_mimetype`,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; `URL_oaManuscript`,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; `upload_oaManuscript`,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; `notes_oaManuscript`,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; `modified_oaManuscript`<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FROM<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; oaManuscript2<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WHERE<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; oaPub_ID = $oaPub_ID<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and upload_oaManuscript = 1<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #&nbsp; ORDER BY surname";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $files_result = mysql_query ($files_query,$link)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; or die ("Query failed:$files_query");<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;$filesXML="";&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while ($f = mysql_fetch_array($files_result)) { #build file metadata and base64 data<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $record=print_r($f,TRUE); echo "&lt;!-- $record --&gt;";<br>&nbsp;&nbsp;&nbsp; $filename = $f['file_oaManuscript'];<br>&nbsp;&nbsp; $mimetype = $f['file_oaManuscript_mimetype'];<br>&nbsp;&nbsp; if(FALSE === ($STUFF=file_get_contents($filebase.$filename))){die("\n\nfailed to get file: $filebase$filename");}<br>&nbsp;&nbsp; $base64=chunk_split(base64_encode($STUFF));<br>&nbsp;&nbsp; $hash=md5($base64);&nbsp;<br>&nbsp;&nbsp; $filesize = strlen($STUFF);<br>&nbsp;&nbsp; $file_modified= $f['modified_oaManuscript'];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;<br>&nbsp;&nbsp;<br>$filesXML .= "<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &lt;file&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;datasetid&gt;document&lt;/datasetid&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;filename&gt;$filename&lt;/filename&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;mime_type&gt;$mimetype&lt;/mime_type&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;hash&gt;$hash&lt;/hash&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;hash_type&gt;MD5&lt;/hash_type&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;filesize&gt;$filesize &lt;/filesize&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;mtime&gt;$file_modified&lt;/mtime&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;data encoding='base64'&gt;";</div><div><br></div><div>$filesXML .= $base64;</div><div><br></div><div>#.=chunk_split(base64_encode(file_get_contents($fileURLbase.$filename)));<br>$filesXML .= "&lt;/data&gt;<br>&nbsp; &lt;/file&gt;";</div><div><br></div><div><br></div><div><br></div><div>&nbsp;&nbsp; }# ends while ($row2 = mysql_fetch_array($coded_result))&nbsp;<br>&nbsp;&nbsp;&nbsp; </div><div><br></div><div><br>&nbsp;&nbsp;</div><div><br></div><div><br></div><div><br></div><div>return $cit = &lt;&lt;&lt;EOC<br>&lt;documents&gt;<br>&lt;document&gt;<br>&nbsp; &lt;mime_type&gt;$maintype&lt;/mime_type&gt;<br>&nbsp;&nbsp;&nbsp; &lt;format&gt;text&lt;/format&gt;<br>&nbsp;&nbsp;&nbsp; &lt;language&gt;en&lt;/language&gt;<br>&nbsp;&nbsp;&nbsp; &lt;security&gt;public&lt;/security&gt;<br>&nbsp;&nbsp;&nbsp; &lt;license&gt;cc_by&lt;/license&gt;<br>&nbsp;&nbsp;&nbsp; &lt;main&gt;$mainfile&lt;/main&gt;<br>&nbsp;&nbsp;&nbsp; &lt;content&gt;accepted&lt;/content&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &lt;files&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $filesXML<br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/files&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/document&gt;<br>&lt;/documents&gt;</div><div><br></div><div><br>EOC;</div><div><br></div><div>}<br>?&gt;&nbsp;&nbsp;&nbsp;&nbsp;<br></div></div><div class="GroupWiseMessageBody" id="GroupWiseSection_1442929240000_mamalos@eng.auth.gr"><span class="GroupwiseReplyHeader">&gt;&gt;&gt; George Mamalakis &lt;mamalos@eng.auth.gr&gt; 22 September 2015 14:40 &gt;&gt;&gt;<br></span><div><div>Hi everybody!<br><br>I'm very close to finishing my EPrints configuration + migration from <br>DSpace. The main thing that remains to be done, is the data migration part.<br><br>I've written a python script that generates an EPrints XML file based on <br>a DSpace csv file, that I'll upload to EPrints Wiki when it'll be done.<br><br>In order to complete it, I need to add the file, and I am not aware as <br>to what syntax I should use. I have a local folder whose subfolders <br>contain all DSPace files, where each subfolder name is the record id. <br>Therefore, my folder structure is somewhat like this:<br><br>/home/data/dspace/{record_id}<br><br>where {record_id} is the DSpace id of the specific record. What are the <br>minimum XML attributes that have to be added in my XML file in order for <br>EPrints to import the files? And how would an example XML entry look <br>like based on our example folder structure?<br><br>Thanks all in advance!<br><br>-- <br>George Mamalakis<br><br>IT and Security Officer,<br>Electrical and Computer Engineer (Aristotle Univ. of Thessaloniki),<br>PhD (Aristotle Univ. of Thessaloniki),<br>MSc (Imperial College of London)<br><br>School of Electrical and Computer Engineering<br>Aristotle University of Thessaloniki<br><br>phone number : +30 (2310) 994379<br><br><br>*** Options: <a href="http://mailman.ecs.soton.ac.uk/mailman/listinfo/eprints-tech">http://mailman.ecs.soton.ac.uk/mailman/listinfo/eprints-tech</a><br>*** Archive: <a href="http://www.eprints.org/tech.php/">http://www.eprints.org/tech.php/</a><br>*** EPrints community wiki: <a href="http://wiki.eprints.org/">http://wiki.eprints.org/</a><br>*** EPrints developers Forum: <a href="http://forum.eprints.org/">http://forum.eprints.org/</a><br></div></div></div></div></body></html>