This is a current failing in the flash/flex design.

The way that I deal with it is to, before doing the actual upload, to send
the data associated with the upload to the server first. The server then
sends back an itemID or ticketID or something like that. When you do the
upload you send with the URL, a parameter which is this new ID. The server
knows that the thing that is being uploaded must be associated with the ID.
When the upload is done, the client then knows what the ID of the uploaded
item is and may ask the server about the item or instruct the server to do
some additional task(s) to the item.

Regards,
Hank

On 11/18/06, Sebastian Zarzycki <[EMAIL PROTECTED]> wrote:

Hello there,

Here at Microplan we have some trouble with the design of project we're
currently workin on. It's some kind of company recruitation system,
built on Flex 2, exchanging data with tomcat server application via
webservices.  Main part of the system is the ability to fill CV form,
providing data about yourself, as well as attaching photo and additional
documents (certificates, etc). This is the place where problems starts
to appear.  This is more of a design problem than Flex, perhaps, I don't
know.  I'm sorry if the description might appear too detailed. I just
would like to know the best approach. Perhaps it all can be narrowed to
simple :
"how can I get the server response, after launching
FileReference.upload() in Flex?"

Here is the scenario :

CV object  fields {
id : integer;
(... alot more here)
photoID : integer;
}

so in DB we have 'cv' table as well as 'attachments' table. The photoID
in CV object points to the file (blob) in DB.

User sees available job positions. Her wants to apply for a specific
position. He clicks the appropriate button, the CV form (new app state)
pops in. New CV object is created with empty fields. User fills the
form. User attaches own photo. He would like to see it on screen after
it is uploaded.

How to achieve that?

From what I've seen, Flex supports file upload/download only via
FileReference.upload(URLRequest) method.  Fine. So I'm getting the
FileReference handle to file on user disk. I cannot use the file
(contents of file) just to display it on screen - flash security policy.
So I have to upload it immediately to server, then somewhow get it back.
So I have FileUpload servlet which takes the image stream and saves it
to DB into 'attachments' table.  I also have FileDownload servlet which
takes attachment id as a parameter, it searches for image in DB with
that id, then spits it out. OK, so I'm launching
FileReference.upload(url_to_my_servlet), the content is uploaded, the
file is saved in DB.

The problem is that at this point I have no information about what
happened with the file on serverside, and more important - i don't know
the id that it was given to the new row (tuple) in the DB. Without that,
I cannot display it for user. I also need it for the CV object, without
it, I cannot save it to DB, when user will click "submit CV" button. The
simplest, though maybe not most clean solution, would be to spit the ID
to the servlet response stream in FileUpload , after the file has been
saved to DB (and given the ID, so I have access to it) - however I'm
unable to retrieve servlet result in Flex.

Apart from that, have you built applications that used files uploaded
from users? How did you design that? What seems to be the best way?
I would be grateful for any help.

--
| Software Engineer
| Sebastian Zarzycki
| Microplan Polska (http://www.microplan.pl)



--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com
Yahoo! Groups Links





Reply via email to