Hi Michael,

there are at least two steps to do:
a) You have to transfer the image "somehow" from the PC of the end
user to Management Server. This is not something, that can be done by
the Management Server. But as I believe, that moxt script languages
are able to transfer files from a client PC to another PC (Management
Server), this should be something, that  shoudn't be too hard.
b) As soon, as the file (image/video/any other format) is in the file
system of the Management Server, you can use RQL (RedDot Query
Language) in order to upload this file into a folder of the Asset
Manager.

Here is small script, that logs a user on to the Management Server >
lists all files in specific folder of the Management Server and then
uploads all files into a folder of the Asset Manager:

<%@ LANGUAGE="VBSCRIPT" %>
<% Option explicit %>
<% Response.Charset = "UTF-8" %>
<%
Server.ScriptTimeout = 36000
response.buffer      = true

'******************************************************************
'** All rights reserved.                                         **
'** Developer: M.Schnitger ([email protected])                      **
'** Company: RedDot Solutions AG, Oldenburg, Germany             **
'** Date: 10/2005                                                **
'** Project: "general"                                           **
'** Modulname: FileUpload.asp                                    **
'** RedDot-Version: 6.5                                          **
'** Release: 1.0                                                 **
'** Copyright (c) RedDot Solutions AG 2006                       **
'******************************************************************

'***************************************
'* Constants
'***************************************

const sPath = "c:\programme\RedDot\CMS\ASP\Icons\"              ' where are
the images you would like to upload?
const sFolderGuid = "8DEDDCC6B612432BAB5A38A1D43D48AC"      ' in which
folder would you like to upload the images?
const sName = "admin2"                                      ' which
user should perform the action!!!
const sPassword = "admin2"
const sProjectGuid = "F34921CCFD3844F28867C22A345BCD7D"         ' What is
the GUID of the project you'd like to upload the files?
dim sTempDir
dim sSubDirGuid
const sUserGuid = "635105CD89FA469683A2EEE87CBC564C"        ' admin2
What's the name of the user, that shall perform the upload process?


sTempDir = session("TempDir")
response.write sTempDir



'************
'************


Response.Write "CurrentPath:<b> " & sPath & "</b><br>" &vbcrlf
'***************************************
'* List files in filesystem
'***************************************
dim sFiles,aFiles
sFiles = ListFiles(sPath)
aFiles = split(sFiles,",")

'***************************************
'* Login
'***************************************
dim sLoginGuid
sLoginGuid = Login(sName,sPassword)
Session("LoginGuid") = sLoginGuid


sTempDir = "c:\Programme\RedDot\CMS\ASP\RedDotTemp\" & sLoginGuid &
"\"



Response.write "LoginGuid: " & Session("LoginGuid") & "<br>" &vbcrlf

'***************************************
'* Validate
'***************************************
dim sSessionKey
sSessionKey = Validate(sLoginGuid,sProjectGuid)
Session("SessionKey") = sSessionKey

Response.write "SessionKey: " & Session("SessionKey") & "<br>"
&vbcrlf

'***************************************
'* File existing? If not > Upload file
'***************************************
dim i,sFileGuid,bFileAlreadyInFolder
for i = 0 to ubound(aFiles)
        Response.Write aFiles(i) & "<br>"  &vbcrlf
        if aFiles(i) <> "" then
                bFileAlreadyInFolder =
FileExisting(sFolderGuid,sFolderGuid,aFiles(i))
                if NOT bFileAlreadyInFolder then
                        sFileGuid = 
UploadFile(sFolderGuid,sFolderGuid,sPath,aFiles(i))
                        Response.Write "<font color='brown'><b>File uploaded: " 
& sFileGuid
& "</font></b><br>" &vbcrlf
                end if
        end if
next

'***************************************
'* Update Folder
'***************************************
call UpdateFolder(sFolderGuid,sFolderGuid,sTempDir)

'***************************************
'* Logout
'***************************************
Logout sLoginGuid
Response.Write "<br>Logged out!<br>"&vbcrlf

 
'*****************************************************************************
 '* List items in a given folder
 
'*****************************************************************************
    function listFiles(sFolder)

      Dim objFSO
      Dim objFolder
      Dim foundFile
      Dim sFilename
      dim sFilenames


      Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
      Set objFolder = objFSO.GetFolder(sFolder)

                  For Each foundFile In objFolder.Files
        sFilename = foundFile.name
                                        if left(sFilename,1) <> "~" then
                                                sFilenames = sFilenames & 
sFilename & ","
                                        end if
                        Next

                        listFiles = sFilenames

                  Set objFSO = Nothing

    end function
'******************
'******************


'*************************************************************************
'* Check, if the file we'd like to upload is already existing
'* Wenn kein Subfolder befüllt werden soll, ist die Subfolderguid =
der
'* Folder Guid
'*************************************************************************
function FileExisting(sFolderGuid,sSubDirGuid,sSourcename)

        '***************************
        '* declare variables
        '***************************

        dim sSessionKey
        dim sLoginGUID
        dim RQLObject
        dim RqlStatement
        dim RqlRequest
        dim sError
        dim bFileAlreadyInFolder
        dim XmlDomFile

        '***************************
        '* get session values
        '***************************
        sSessionKey                   = Session("SessionKey")
        sLoginGUID                    = Session("LoginGUID")

        '***************************
        '* initialize objects
        '***************************
        set RQLObject                 =
Server.CreateObject("RDCMSAsp.RdPageData")
        RQLObject.XmlServerClassName  = XmlServerClassName
        const XmlServerClassName      = "RDCMSServer.XmlServer"
        const DhtmlClassName          = "RDCMSAsp.RdPageData"
        const XmlDocumentClassName        = "RDCMSXmlDom.RDDocument"
        set XmlDomFile                =
Server.CreateObject(XmlDocumentClassName)

        bFileAlreadyInFolder = false


    RQLStatement = "<IODATA loginguid=""" & sLoginGuid & """
sessionkey=""" & sSessionKey & """>"&_
                                   "<PROJECT>"&_
                   "<FOLDER guid=""" & sFolderGuid & """
subdirguid=""" & sSubDirGuid & """>"&_
                   "<FILE action=""check"" sourcename=""" &
sSourcename & """ />"&_
                   "</FOLDER>"&_
                   "</PROJECT>"&_
                   "</IODATA>"
    RQLRequest   = RQLObject.ServerExecuteXml(RQLStatement, sError)
                   if sError>"" then Response.write "Error -> check
image:</BR></BR>"+sError

                  XmlDomFile.LoadXML (RQLRequest)

                 if
instr(XmlDomFile.ChildNodes("FOLDER").ChildNodes("FILE").GetNodeAttribute("newsourcename").AttributeValue,"(1)")
> 0 then
                                        bFileAlreadyInFolder = true
                                 end if


                   'Response.Write "<font color='lightblue'>" &
server.HTMLEncode(RqlStatement)  & "</font><p>"
                   'Response.Write "<font color='navy'>" &
server.HTMLEncode(RqlRequest) & "</font><p>"

                   FileExisting = bFileAlreadyInFolder

end function
'**********
'**********


'*************************************************************************
'* Upload file
'* (it is assumed, that the files are already on the cms server)
'*************************************************************************
function UploadFile(sFolderGuid,sSubDirGuid,sSourcePath,sSourcename)

        '***************************
        '* declare variables
        '***************************

        dim sSessionKey
        dim sLoginGUID
        dim RQLObject
        dim RqlStatement
        dim RqlRequest
        dim sError
        dim sTempDir
        dim sSubFolderGuid
        dim XmlDomFile
        dim sFileGuid


        '***************************
        '* get session values
        '***************************
        sSessionKey                   = Session("SessionKey")
        sLoginGUID                    = Session("LoginGUID")

        '***************************
        '* initialize objects
        '***************************
        set RQLObject                 =
Server.CreateObject("RDCMSAsp.RdPageData")
        RQLObject.XmlServerClassName  = XmlServerClassName
        const XmlServerClassName      = "RDCMSServer.XmlServer"
        const DhtmlClassName          = "RDCMSAsp.RdPageData"
        const XmlDocumentClassName        = "RDCMSXmlDom.RDDocument"
        set XmlDomFile                =
Server.CreateObject(XmlDocumentClassName)


        sTempDir = "c:\Programme\RedDot\CMS\ASP\RedDotTemp\" & sLoginGuid &
"\"


    RQLStatement = "<IODATA loginguid=""" & sLoginGuid & """
sessionkey=""" & sSessionKey & """>"&_
                                   "<MEDIA>"&_
                                   "<FOLDER tempdir=""" & sTempDir & """ 
guid=""" & sFolderGuid &
""" subdirguid=""" & sSubDirGuid & """ filecount="""">"&_
                                   "<FILE action=""save"" overwrite=""1"" 
sourcename=""" &
sSourcename & """ sourcepath=""" & sSourcePath & """/>"&_
                                   "</FOLDER>"&_
                                   "</MEDIA>"&_
                   "</IODATA>"
    RQLRequest   = RQLObject.ServerExecuteXml(RQLStatement, sError)
                   if sError>"" then Response.write "Error -> check
image:</BR></BR>"+sError

                   XmlDomFile.LoadXml(RqlRequest)

                   sFileGuid =
XmlDomFile.ChildNodes("FILE").GetNodeAttribute("guid").AttributeValue

                   'Response.Write server.HTMLEncode(RqlStatement)  &
"<p>"
                   'Response.Write server.HTMLEncode(RqlRequest) &
"<p>"

                   UploadFile = sFileGuid
end function
'**********
'**********


'*********************************************************************************
'* Login
'*********************************************************************************
function Login(sName,sPassword)

        '***************************
        '* declare variables
        '***************************
        dim XmlDom
        dim RqlObject
        dim RqlStatement
        dim RqlRequest
        dim sLoginGuid
        dim sError

        '***************************
        '* initialize objects
        '***************************
        set XmlDom                    =
Server.CreateObject("RDCMSAspObj.RdObject")
        set RQLObject                 =
Server.CreateObject("RDCMSAsp.RdPageData")
        RQLObject.XmlServerClassName  = XmlServerClassName
        const XmlServerClassName      = "RDCMSServer.XmlServer"
        const DhtmlClassName          = "RDCMSAsp.RdPageData"


        RQLStatement = "<IODATA>" & _
                       "<ADMINISTRATION action=""login"" name=""" & sName &
""" password=""" & sPassword & """/>" & _
                       "</IODATA>"
        RQLRequest   = RQLObject.ServerExecuteXml(RQLStatement, sError)
                       if sError>"" then Response.write "Login Error:</BR></
BR>"+sError

                                   XMLDOM.LoadXml cstr(RQLRequest)

        sLoginGuid   = XMLDOM.objects("LOGIN")("guid")

        Login = sLoginGuid

end function
'**********
'**********

'*********************************************************************************
'* Validate (connect to project)
'*********************************************************************************
function Validate(sLoginGuid,sProjectGuid)


        '***************************
        '* declare variables
        '***************************
        dim XmlDom
        dim RqlObject
        dim RqlStatement
        dim RqlRequest
        'dim sLoginGuid
        dim sError
        dim sSessionKey

        '***************************
        '* initialize objects
        '***************************
        set XmlDom                    =
Server.CreateObject("RDCMSAspObj.RdObject")
        set RQLObject                 =
Server.CreateObject("RDCMSAsp.RdPageData")
        RQLObject.XmlServerClassName  = XmlServerClassName
        const XmlServerClassName      = "RDCMSServer.XmlServer"
        const DhtmlClassName          = "RDCMSAsp.RdPageData"

        RQLStatement = "<IODATA loginguid=""" & sLoginGuid & """>"&_
                                   "<ADMINISTRATION action=""validate"" 
guid=""" & sLoginGuid &
""" checkonly=""1"" useragent=""script"" >"&_
                                   "<PROJECT guid=""" & sProjectGuid & """ />"&_
                                   "</ADMINISTRATION>"&_
                                   "</IODATA>"
        RQLRequest   = RQLObject.ServerExecuteXml(RQLStatement, sError)
                       if sError>"" then Response.write "An error has
occured:</BR></BR>"+sError

        XMLDOM.LoadXml cstr(RQLRequest)

        sSessionKey=XMLDOM.objects("SERVER")("key")

        Validate = sSessionKey

end function
'**********
'**********

'*********************************************************************************
'* Logout
'*********************************************************************************
function Logout(sLoginGuid)


        '***************************
        '* declare variables
        '***************************
        dim XmlDom
        dim RqlObject
        dim RqlStatement
        dim RqlRequest
        dim sError

        '***************************
        '* initialize objects
        '***************************
        set XmlDom                    =
Server.CreateObject("RDCMSAspObj.RdObject")
        set RQLObject                 =
Server.CreateObject("RDCMSAsp.RdPageData")
        RQLObject.XmlServerClassName  = XmlServerClassName
        const XmlServerClassName      = "RDCMSServer.XmlServer"
        const DhtmlClassName          = "RDCMSAsp.RdPageData"

        RQLStatement = "<IODATA loginguid=""" & sLoginGuid & """>"&_
                       "<ADMINISTRATION>"&_
                                   "<LOGOUT guid=""" & sLoginGUID & """ />"&_
                       "</ADMINISTRATION>"&_
                                   "</IODATA>"
        RQLRequest   = RQLObject.ServerExecuteXml(RQLStatement, sError)

                                   if sError>"" then Response.write "Logout 
Error"+sError

end function
'**********
'**********


'*********************************************************************************
'* Update Folder (thumbnails)
'*********************************************************************************
function UpdateFolder(sFolderGuid,sSubDirGuid,sTempDir)


        '***************************
        '* declare variables
        '***************************
        dim XmlDom
        dim RqlObject
        dim RqlStatement
        dim RqlRequest
        dim sError
        dim sUserGuid

        '***************************
        '* initialize objects
        '***************************
        set XmlDom                    =
Server.CreateObject("RDCMSAspObj.RdObject")
        set RQLObject                 =
Server.CreateObject("RDCMSAsp.RdPageData")
        RQLObject.XmlServerClassName  = XmlServerClassName
        const XmlServerClassName      = "RDCMSServer.XmlServer"
        const DhtmlClassName          = "RDCMSAsp.RdPageData"

        RQLStatement = "<IODATA loginguid=""" & sLoginGuid & """
sessionkey=""" & sSessionKey & """>"&_
                       "<MEDIA>"&_
                                   "<FOLDER guid=""" & sFolderGuid & """ 
subdirguid=""" &
sSubDirGuid & """ action=""updatecatalog"" tempdir=""" & sTempDir &
""" userguid=""" & sUserGuid & """ subject=""""
updatethumbnails=""0"" />"&_
                                   "</MEDIA>"&_
                                   "</IODATA>"
        RQLRequest   = RQLObject.ServerExecuteXml(RQLStatement, sError)

                                   if sError>"" then Response.write "Logout 
Error"+sError


                                       response.write "<p><font color='red'>" &
server.htmlencode(rqlstatement) & "</font><hr>"
    response.write "<font color='green'>" &
server.htmlencode(rqlrequest) & "<p>"

end function
'**********
'**********
%>

Best regards,
Manuel

P.S.: If you need to know more about RQL programming, then maybe this
blog might be a good start ;-) http://manuelschnitger.wordpress.com

On 15 Mrz., 15:34, "[email protected]" <[email protected]>
wrote:
> Is there a plug-in for Management Server (RedDot CMS) that allows end
> users (not content editors, but actual visitors to the public website)
> to upload images and videos into an Asset Manager folder on the CMS?
>
> If not, how have others handled the task of allowing end-users to
> upload images and videos?
>
> We are currently building a tool using Vignette Collaboration (Open
> Text Social Tools) which will allow end users (visitors to our public
> site) to begin and manage their own blogs.
>
> We are running Management Server v.10 as our CMS and deploying into
> Delivery Server v.10.
>
> Thanks in advance.
>
> Michael Klosner,
> Senior Developer

-- 
You received this message because you are subscribed to the Google Groups 
"RedDot CMS Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/reddot-cms-users?hl=en.

Reply via email to