Package org.mycore.frontend.fileupload
Class MCRUploadHandlerIFS
java.lang.Object
org.mycore.common.processing.MCRAbstractProgressable
org.mycore.common.processing.MCRAbstractProcessable
org.mycore.frontend.fileupload.MCRUploadHandler
org.mycore.frontend.fileupload.MCRUploadHandlerIFS
- All Implemented Interfaces:
MCRListenableProgressable
,MCRProcessable
,MCRProgressable
handles uploads and store files directly into the IFS.
- Version:
- $Revision$ $Date$
- Author:
- Thomas Scheffler (yagee), Frank Lützenkirchen
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected MCRDerivate
protected String
protected String
protected MCRPath
Fields inherited from class org.mycore.frontend.fileupload.MCRUploadHandler
uploadID, url
Fields inherited from class org.mycore.common.processing.MCRAbstractProcessable
createTime, endTime, error, name, properties, startTime, status, statusListener, userId
Fields inherited from class org.mycore.common.processing.MCRAbstractProgressable
progress, progressListener, progressText
-
Constructor Summary
ConstructorsConstructorDescriptionMCRUploadHandlerIFS
(String documentID, String derivateID) MCRUploadHandlerIFS
(String documentID, String derivateID, String returnURL) -
Method Summary
Modifier and TypeMethodDescriptionboolean
acceptFile
(String path, String checksum, long length) This method is called to ask if this file should be uploaded and will be accepted by the server.void
After finishing uploading all files, this method is called so that the UploadHandler subclass can finish work and commit all saved files.protected String
long
receiveFile
(String path, InputStream in, long length, String checksum) This method is called so that the UploadHandler subclass can store the file on the server side.protected void
setDefaultPermissions
(MCRObjectID derivateID) void
startUpload
(int numFiles) Starts the upload session.Methods inherited from class org.mycore.frontend.fileupload.MCRUploadHandler
cancelUpload, decrementNumFiles, getID, getNumFiles, getRedirectURL, incrementNumFiles, unregister
Methods inherited from class org.mycore.common.processing.MCRAbstractProcessable
addStatusListener, fireStatusChanged, getCreateTime, getEndTime, getError, getName, getProperties, getStartTime, getStatus, getUserId, removeStatusListener, setError, setName, setStatus, setUserId
Methods inherited from class org.mycore.common.processing.MCRAbstractProgressable
addProgressListener, fireProgressChanged, fireProgressTextChanged, getProgress, getProgressText, removeProgressListener, setProgress, setProgressText
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.mycore.common.processing.MCRListenableProgressable
addProgressListener, removeProgressListener
Methods inherited from interface org.mycore.common.processing.MCRProcessable
getProperty, getPropertyAs, isCanceled, isCreated, isDone, isFailed, isProcessing, isSuccessful, took
Methods inherited from interface org.mycore.common.processing.MCRProgressable
getProgress, getProgressText
-
Field Details
-
documentID
-
derivateID
-
derivate
-
rootDir
-
-
Constructor Details
-
MCRUploadHandlerIFS
-
MCRUploadHandlerIFS
-
-
Method Details
-
startUpload
public void startUpload(int numFiles) Description copied from class:MCRUploadHandler
Starts the upload session.- Overrides:
startUpload
in classMCRUploadHandler
- Parameters:
numFiles
- the number of files that will be uploaded
-
setDefaultPermissions
-
acceptFile
Description copied from class:MCRUploadHandler
This method is called to ask if this file should be uploaded and will be accepted by the server. The default implementation always returns true (always upload file), but subclasses should overwrite this method to decide whether the file's content must be uploaded. Decision can be based on the MD5 checksum, so unchanged files do not have to be uploaded again.- Overrides:
acceptFile
in classMCRUploadHandler
- Parameters:
path
- the path and filename of the filechecksum
- the MD5 checksum computed at the client sidelength
- the length of the file in bytes (file size)- Returns:
- true, if the file should be uploaded, false if the file should be skipped
- Throws:
Exception
-
receiveFile
public long receiveFile(String path, InputStream in, long length, String checksum) throws IOException, MCRPersistenceException, MCRAccessException Description copied from class:MCRUploadHandler
This method is called so that the UploadHandler subclass can store the file on the server side. When the UploadHandler could read less than length bytes from the InputStream at the time the InputStream has no data any more, the user at the remote side canceled upload during file transfer. The UploadHandler then can decide to delete the file, but must return the number of bytes stored. The UploadHandler can also compare the MD5 checksum calculated at the client side with its own checksum, to detect magical transfer errors. This method requires a database transaction.- Specified by:
receiveFile
in classMCRUploadHandler
- Parameters:
path
- the path and filename of the filein
- the inputstream to read the content of the file fromlength
- the total file size as number of bytes. This may be 0, meaning that the file is empty or the file size is not known.checksum
- the md5 checksum calculated at the client side. This may be null, meaning that the md5 checksum is not known.- Returns:
- the number of bytes that have been stored.
- Throws:
IOException
MCRPersistenceException
MCRAccessException
-
finishUpload
Description copied from class:MCRUploadHandler
After finishing uploading all files, this method is called so that the UploadHandler subclass can finish work and commit all saved files.- Specified by:
finishUpload
in classMCRUploadHandler
- Throws:
IOException
MCRAccessException
-
getPathOfMainFile
- Throws:
IOException
-
getDerivateID
-
getDocumentID
-