我需要用户能够将多个文件上传到我的服务器,因此我正在使用该SWFUpload
实用程序。SWFUpload 将文件一个一个发送,我需要将它们全部存储在同一个临时目录中。我的ASP.NET
处理程序一一接收文件,我可以适当地存储文件。
我的问题是:我怎么知道哪些文件属于同一个上传?换个说法,我如何连接处理程序中的文件?
我需要用户能够将多个文件上传到我的服务器,因此我正在使用该SWFUpload
实用程序。SWFUpload 将文件一个一个发送,我需要将它们全部存储在同一个临时目录中。我的ASP.NET
处理程序一一接收文件,我可以适当地存储文件。
我的问题是:我怎么知道哪些文件属于同一个上传?换个说法,我如何连接处理程序中的文件?
我看到了两种方法来做到这一点(但它们继承了相同的想法)。
这个想法是基于你应该有类似sessionId
参数的东西。对于每组文件,该值应该是唯一的。您可以使用javascript
uuid
生成器或类似的东西。
此外,此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 事件在文件选择对话框窗口关闭并且所有选定文件都已处理后触发。“排队的文件数”参数表示从对话框选择排队的文件数(与队列中的文件数相反)。
方法。
希望这可以帮助。