我需要一个Asp.net控件来上传通过Ajax发送文件的多个文件。
此控件可用于将文件存储在文件夹或数据库中,持久化将由将使用我的控件的类决定,而不是由控件本身决定。所以我需要在这里达到一定程度的灵活性。
上传的文件将像文件列表一样存储“我的控制类”,直到使用我的控件的类执行“官方帖子”,这将消耗并最终释放类。
在一个简单的示例中,使用我的控件的表单将使用通过我的控件和upong Save生成的所有上传生成的列表,该表单将读取我的列表并以最好的方式保存它。
这里的问题在于方法:
我不能使用updatePanel,因为它不允许文件输入,而且(afaik)不会保持纯javascript生成的input=files状态。
不可能使用WebMethod属性发送数据,因为它要求我的方法是静态的,这使得无法使用该方法为内存中的对象提供数据。
另一种选择是使用手工Ajax,这并不困难,但我不确定Asp.net将如何表现,它是否在Ajax调用之间保持状态?我可以通过不同的调用在内存对象中访问相同的对象吗?我必须跟踪视图或使用会话吗?使用会话或viewstate(!)是否可行?来保存上传的文件?
增强:问题不是用ajax上传文件,而是使用Blueimp.github.com/jQuery,问题是在不持久化的情况下在服务器端跟踪它们。
示例
让我试着更好地解释:
0)我有一个控件,这个控件有一个属性,它是文件的列表- List<files> FilesUploaded
;
1)在每次ajax上传时,我将即将出现的文件添加到列表FilesUploaded.Add(FileComingFromAjax)
中
2)我的控件进入表单(任何表单),当我保存表单BtSave.Click()
时,表单类将需要获取文件列表并持久化:它们像这样访问它。注意,文件在内存中,而不是在磁盘或数据库中。
我的疑问是,这些文件会在每次请求之后保留吗?纳米莉:
方法会通过ajax调用,使用相同的列表吗?
当我提交主表单时,列表是否可以通过表单类与我刚刚上传的文件一起访问?
发布于 2013-02-22 18:03:31
发布于 2013-02-22 20:17:55
实际上,我认为asp.net可以在ajax请求之间保留对象,但事实并非如此。
我将使用会话,不再害怕将对象添加到会话中,ASP.net, adding objects to a session variable
https://stackoverflow.com/questions/15030370
复制相似问题