2010-03-18 37 views
2

我需要用户能够上传多个文件到我的服务器,因此我使用的是SWFUpload实用程序。 SWFUpload逐个发送文件,我需要将它们全部存储在同一个临时目录中。我的ASP.NET处理程序逐个收到文件,我可以适当地存储该文件。SWF上传多个文件服务器端处理

我的问题是:如何知道哪些文件属于同一上传?换言之,我如何连接我的处理程序中的文件?

回答

2

我看到2种方法来做到这一点(但他们继承了相同的想法)。

这个想法是基于你应该有东西像sessionId参数的东西。该值对于每组文件都应该是唯一的。你可以使用javascriptuuid发电机或类似的东西等等。

此外,这个sessionId变量可能会通过查询字符串(稍微修改您的处理程序url):~/UploadHandler.ashx?sessionId={whatever}或作为post参数(猜测,更好的方法)传递。 可以通过使用例如context.Request["SessionId"]在服务器端检索该值。

在客户端,您应该可以动态更改发布参数或处理程序url。它可以通过使用来完成:

void addPostParam(name, value) 

的addPostParam功能增加了 名称/值对将在 要发送的POST对上传的所有文件。

在post_params设置中,名称/值对也会出现 。

void setUploadURL(url) 

动态修改UPLOAD_URL 设置。

客户端方法。他们应该从

fileDialogComplete(number of files selected, number of files queued, total number of files in the queued) 

的fileDialogComplete事件触发 文件选择对话框窗口 已经关闭之后被调用,所有选择 文件已被处理。的“文件数 排队”参数指示 其从该对话框选择(相 到的文件的数量在队列中)排队 文件的数目。

方法。

希望,这有助于。

+0

@Alex:谢谢您的建议。我有一种感觉,这是我需要采取的方法,但希望有一些神奇:) – Chau 2010-03-19 09:17:02