c# - 有什么方法可以让我在上传文件时继续访问网站?

标签 c# asp.net ajax file-upload

背景:

我正在为我的 CS 系做一个本科生研究项目。该项目是生物系的一个网站,一个主要特点是生物系学生能够上传他们自己的 .xml 文件,然后在服务器端使用 Matlab 为他们构建 * 模型。

前端在 ASP.NET、javascript 和 C# 环境中。我对这个项目的一点联想是我对这些系统、工具和语言的全部了解。

问题:

我之前提到的 .xml 文件可能需要几个小时才能上传和构建。我的教授希望用户能够使用已经完成的模型继续页面,同时新​​模型被发送到后台并且用户在完成时收到一封电子邮件。我找到了用于发送电子邮件的 Material ,但没有找到用于继续该页面的 Material 。

我听说过一些关于使用 AJAX 加载页面的事情?

最佳答案

在您的页面上放置一个文件上传控件

<asp:FileUpload ID="FileUpload1" runat="server"/>

构建一个 http 处理程序来处理文件上传:

public class Handler : IHttpHandler {

    public void ProcessRequest (HttpContext context) {
        HttpPostedFile fileToUpload = context.Request.Files["Filedata"];
        string pathToSave = HttpContext.Current.Server.MapPath("~/Files/")
                            + fileToUpload.FileName;
        fileToUpload.SaveAs(pathToSave);

        //Process file
    }

    public bool IsReusable {
        get {
            return false;
        }
    }
}

看看你是否可以集成一个像uploadify这样的上传插件进入项目(需要jQuery)。

<script type = "text/javascript">
$(document).ready(function()
{
     $("#<%=FileUpload1.ClientID %>").uploadify(
     {
       'swf': 'Scripts/uploadify.swf',
       'uploader': 'Handler.ashx',
       'auto': true,
      'buttonText': 'Select File(s)'
     });
});
</script> 

如果你不能做到这一点,你需要了解ajax是如何工作的

Ajax 通常使用 XMLHttpRequest,它不允许您对本地文件进行编码并将其发送到服务器。
您可以使用 Flash swf 来处理同一页面上的上传,或者使用具有不可见 1x1 iframe 目标的表单。

我在这个博客上找到了关于 file uploads in asp.net 的代码

关于c# - 有什么方法可以让我在上传文件时继续访问网站?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12966353/

相关文章:

C# WPF Caliburn Micro TreeViewItem.Expanded 事件未触发

mysql - 在vb.net中向mysql数据库添加记录

javascript - 未定义 foreach 作为 AJAX 选项

javascript - Ajax 为我的联接表发出帖子请求时出现问题

c# - WPF RichTextBox 内存泄漏

c# - 如何在 C#.net 的不同机器上的两个独立的 winform 应用程序之间传递值

c# - .net 核心中的 Hangfire 一段时间后不工作(部署到真实服务器)

asp.net - ASP Web 应用程序超时和可能的配置问题

c# - 根据静态属性中的列表验证下拉列表选定值

javascript - 仅在输入两个或更多字符时触发 AJAX