上传文件而不进行全页回发

时间:2012-09-12 23:07:21

标签: c# jquery asp.net ajax file-upload

计划

  1. 我需要上传文件而不会导致整页刷新。
  2. 上传的文件应存储在临时位置(会话或 饼干)
  3. 我只会保存服务器中的文件(如果是用户) 成功填写所有表格字段。
  4. 注意:这是jQuery滑块的幻灯片之一。因此,完全刷新会破坏用户体验。


    问题

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

    注意:到目前为止,我发现这种情况是出于安全原因。

      

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


    问题

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

1 个答案:

答案 0 :(得分:2)

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

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

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