Uploading xml file that only exists in memory

2 posts, 0 answers
  1. Neal Robben
    Neal Robben avatar
    5 posts
    Member since:
    Mar 2010

    Posted 23 Mar 2010 Link to this post


    I have the following situation:

    A homemade upload-window that contains a RadUpload control (for uploading videofiles) and some textboxes for entering meta-data about the files.

    Now I have the following usage-scenarion:
    -----------------------------------------
    - User opens window
    - User uses RadUpload to select "Video1.mpg"
    - User presses RadUpload's upload button and "Video1.mpg" is uploaded to the server
    - User enters meta-data for the file (Description, Category-tags)...
    - Users presses "Upload meta-data"
    - Program constructs XML-object in memory. This object contains the meta-data
    - Program uploads the content of this XML-object to the server where it is stored as a file ("Video1.mpg.metadata") in the same folder as the file "Video1.mpg"

    Is there an elegant way to do this using RadUpload? For each video-file that was (successfully) uploaded, I need to programmatically start another upload (SEPARATE from the upload that handles the video-file!!!) that uploads the contents of an XML-object to a file on the server.

    Does anyone have an example of this?

    I figured I could use the following code:
    ---------------------------
    metaFileUploader.CurrentSession.SelectedFiles.Add(new RaduploadSelectedFile(xxx));
    metaFileUploader.StartUpload();
    --------------------------

    The problem is that the constructor for RaduploadSelectedFile only takes a FileInfo object (Which in turn only takes a string pointing to a file). So there is no way to get the data from memory.

    I have also read an article on here that stated how to upload a bytestream by handling the FileUploadStarting event and initializing the NewFileStream property (of the FileUploadStartingEventArgs) with a custom stream.

    I don't think this is a solution because there is no FileUploadStarting event happening that I can react to because I have to add the files from memory and then start the upload.

    I have a feeling that both of these suggestions could offer part of the solution, but I can't put it all together.

        Kind Regards,
              Neal



  2. Ivan
    Admin
    Ivan avatar
    519 posts

    Posted 26 Mar 2010 Link to this post

    Hi Neal,

    Thank you for contacting us.

    Current release of RadUpload can send extra information for each of uploaded files. We named this information "Custom Parameters". More information about them you can find in the Passing custom params to the server side handler article. Please note to send a custom parameter(s) you need a file to upload too, i.e. you will not be able to upload only your custom parameter.

    Because of this it will be a good practice to enter all the meta-info first and later to upload it together with the related file. Here are two approaches:
    1. Upload a single file.
      This scenario is very simple and we highly suggest that you should try it first.
      • Set the IsMultiselect property (of RadUpload) to False.
      • Handle the FileUploadStarting event.
      • Inside the event handler attach the meta-info to the current upload.
    2. Upload multiple files.
      This scenario involves customization of the RadUploadItem's Template. Even more you should implement a mechanism to search the elements' visual tree for your meta-info fields. This method requires a lot of development effort. More about it you can find in this forum thread.

      We hope this information will help you to find the right solution for your task. However if you have more questions please drop us a line.

      All the best,
      Ivan
      the Telerik team

      Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items.
    3. DevCraft banner
    Back to Top