Search in sources :

Example 1 with FileValue

use of uk.ac.ed.ph.jqtiplus.value.FileValue in project OpenOLAT by OpenOLAT.

the class AssessmentRenderFunctions method getResponseValueAsBase64.

public static String getResponseValueAsBase64(AssessmentItem assessmentItem, AssessmentTestSession candidateSession, ItemSessionState itemSessionState, Identifier identifier, boolean solutionMode) {
    Value val = getResponseValue(assessmentItem, itemSessionState, identifier, solutionMode);
    String encodedString = null;
    if (val instanceof FileValue) {
        FileValue fileValue = (FileValue) val;
        File myStore = CoreSpringFactory.getImpl(AssessmentTestSessionDAO.class).getSessionStorage(candidateSession);
        File submissionDir = new File(myStore, "submissions");
        File submittedFile = new File(submissionDir, fileValue.getFileName());
        try (InputStream inStream = new FileInputStream(submittedFile)) {
            byte[] binaryData = IOUtils.toByteArray(inStream);
            encodedString = new String(Base64.encodeBase64(binaryData), "UTF8");
        } catch (Exception e) {
            log.error("", e);
        }
    }
    return encodedString;
}
Also used : FileValue(uk.ac.ed.ph.jqtiplus.value.FileValue) AssessmentTestSessionDAO(org.olat.ims.qti21.manager.AssessmentTestSessionDAO) FileInputStream(java.io.FileInputStream) InputStream(java.io.InputStream) DurationValue(uk.ac.ed.ph.jqtiplus.value.DurationValue) IdentifierValue(uk.ac.ed.ph.jqtiplus.value.IdentifierValue) FloatValue(uk.ac.ed.ph.jqtiplus.value.FloatValue) ListValue(uk.ac.ed.ph.jqtiplus.value.ListValue) MultipleValue(uk.ac.ed.ph.jqtiplus.value.MultipleValue) Value(uk.ac.ed.ph.jqtiplus.value.Value) IntegerValue(uk.ac.ed.ph.jqtiplus.value.IntegerValue) RecordValue(uk.ac.ed.ph.jqtiplus.value.RecordValue) OrderedValue(uk.ac.ed.ph.jqtiplus.value.OrderedValue) BooleanValue(uk.ac.ed.ph.jqtiplus.value.BooleanValue) SingleValue(uk.ac.ed.ph.jqtiplus.value.SingleValue) StringValue(uk.ac.ed.ph.jqtiplus.value.StringValue) NullValue(uk.ac.ed.ph.jqtiplus.value.NullValue) FileValue(uk.ac.ed.ph.jqtiplus.value.FileValue) File(java.io.File) FileInputStream(java.io.FileInputStream)

Example 2 with FileValue

use of uk.ac.ed.ph.jqtiplus.value.FileValue in project openolat by klemens.

the class AssessmentRenderFunctions method getResponseValueAsBase64.

public static String getResponseValueAsBase64(AssessmentItem assessmentItem, AssessmentTestSession candidateSession, ItemSessionState itemSessionState, Identifier identifier, boolean solutionMode) {
    Value val = getResponseValue(assessmentItem, itemSessionState, identifier, solutionMode);
    String encodedString = null;
    if (val instanceof FileValue) {
        FileValue fileValue = (FileValue) val;
        File myStore = CoreSpringFactory.getImpl(AssessmentTestSessionDAO.class).getSessionStorage(candidateSession);
        File submissionDir = new File(myStore, "submissions");
        File submittedFile = new File(submissionDir, fileValue.getFileName());
        try (InputStream inStream = new FileInputStream(submittedFile)) {
            byte[] binaryData = IOUtils.toByteArray(inStream);
            encodedString = new String(Base64.encodeBase64(binaryData), "UTF8");
        } catch (Exception e) {
            log.error("", e);
        }
    }
    return encodedString;
}
Also used : FileValue(uk.ac.ed.ph.jqtiplus.value.FileValue) AssessmentTestSessionDAO(org.olat.ims.qti21.manager.AssessmentTestSessionDAO) FileInputStream(java.io.FileInputStream) InputStream(java.io.InputStream) DurationValue(uk.ac.ed.ph.jqtiplus.value.DurationValue) IdentifierValue(uk.ac.ed.ph.jqtiplus.value.IdentifierValue) FloatValue(uk.ac.ed.ph.jqtiplus.value.FloatValue) ListValue(uk.ac.ed.ph.jqtiplus.value.ListValue) MultipleValue(uk.ac.ed.ph.jqtiplus.value.MultipleValue) Value(uk.ac.ed.ph.jqtiplus.value.Value) IntegerValue(uk.ac.ed.ph.jqtiplus.value.IntegerValue) RecordValue(uk.ac.ed.ph.jqtiplus.value.RecordValue) OrderedValue(uk.ac.ed.ph.jqtiplus.value.OrderedValue) BooleanValue(uk.ac.ed.ph.jqtiplus.value.BooleanValue) SingleValue(uk.ac.ed.ph.jqtiplus.value.SingleValue) StringValue(uk.ac.ed.ph.jqtiplus.value.StringValue) NullValue(uk.ac.ed.ph.jqtiplus.value.NullValue) FileValue(uk.ac.ed.ph.jqtiplus.value.FileValue) File(java.io.File) FileInputStream(java.io.FileInputStream)

Aggregations

File (java.io.File)2 FileInputStream (java.io.FileInputStream)2 InputStream (java.io.InputStream)2 AssessmentTestSessionDAO (org.olat.ims.qti21.manager.AssessmentTestSessionDAO)2 BooleanValue (uk.ac.ed.ph.jqtiplus.value.BooleanValue)2 DurationValue (uk.ac.ed.ph.jqtiplus.value.DurationValue)2 FileValue (uk.ac.ed.ph.jqtiplus.value.FileValue)2 FloatValue (uk.ac.ed.ph.jqtiplus.value.FloatValue)2 IdentifierValue (uk.ac.ed.ph.jqtiplus.value.IdentifierValue)2 IntegerValue (uk.ac.ed.ph.jqtiplus.value.IntegerValue)2 ListValue (uk.ac.ed.ph.jqtiplus.value.ListValue)2 MultipleValue (uk.ac.ed.ph.jqtiplus.value.MultipleValue)2 NullValue (uk.ac.ed.ph.jqtiplus.value.NullValue)2 OrderedValue (uk.ac.ed.ph.jqtiplus.value.OrderedValue)2 RecordValue (uk.ac.ed.ph.jqtiplus.value.RecordValue)2 SingleValue (uk.ac.ed.ph.jqtiplus.value.SingleValue)2 StringValue (uk.ac.ed.ph.jqtiplus.value.StringValue)2 Value (uk.ac.ed.ph.jqtiplus.value.Value)2