0

计划

  1. 我需要上传文件而不导致整页刷新。
  2. 上传的文件应存储在临时位置(会话或 cookie)
  3. 如果用户成功填写所有表单字段,我只会将文件保存在服务器中。

注意:这是 jQuery 滑块的幻灯片之一。因此,完全刷新会破坏用户体验。


问题

如果我在 AJAX 更新面板中放置一个 Fileuploader 控件,我将无法在服务器端访问该文件。

注意:从我目前发现的情况来看,这是出于安全原因。

如果没有在客户端上安装合作的二进制文件,就无法完成。AJAX 框架没有安全的机制来读取文件的内容并因此能够将其发送到服务器。浏览器仅支持作为来自文件输入框的多部分表单发布。


问题

  1. 将文件存储在临时位置时,我应该使用会话还是 cookie?(如果用户禁用了 cookie 怎么办?)
  2. 如果阻止回发,则确实违反了用户安全标准。它会损害我的网站声誉吗?(关于搜索引擎优化等)
  3. 走哪条路?
    • C# ASP.Net 与 AJAX?(有解决方法吗?)
    • C# ASP.Net + AJAX 控制工具包?它有帮助吗?(使用 AsyncFileUpload 控件)
    • C# ASP.Net + jQuery 控件?(从 JavaScript 获取数据不会有问题吗?)
    • C# ASP.Net + iFrame?(不是最优雅的解决方案)
4

1 回答 1

2
  1. 您可以使用的 cookie 总量限制为几千字节,因此这不是存储文件的可行选项。所以会话将是唯一剩下的。还要考虑将文件保存在文件系统中并在不使用时将其删除,因为将文件存储在内存(会话)中会限制您一次可以处理的用户数量。

  2. 不,对于上传文件等功能,您不必担心。搜索引擎在扫描页面时不会尝试使用此类功能。

您可以在支持直接文件访问的浏览器中使用 AJAX 上传,但如果您需要支持所有浏览器,则无法发布帖子。但是,帖子不必最终加载新页面,您可以将表单放在 iframe 中,或者将表单的目标指向 iframe。

于 2012-09-12T23:26:34.103 回答