C# 在上传文件时,我是否可以继续浏览网站?

C# 在上传文件时,我是否可以继续浏览网站?,c#,asp.net,ajax,file-upload,C#,Asp.net,Ajax,File Upload,背景: 我正在为我的计算机科学系做一个本科研究项目。该项目是生物系的一个网站,其主要特点是生物系学生能够上传自己的.xml文件,然后使用Matlab在服务器端为他们建立*模型 前端在ASP.NET、javascript和C#环境中。我与这个项目的一点联系就是我对这些系统、工具和语言的所有知识 问题: 我前面提到的.xml文件可能需要数小时才能上传和构建。我的教授希望用户能够使用已经完成的模型继续页面,同时将新模型发送到后台,用户在完成后收到电子邮件。我找到了发送电子邮件的材料,但没有找到继续页面

背景:

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

前端在ASP.NET、javascript和C#环境中。我与这个项目的一点联系就是我对这些系统、工具和语言的所有知识

问题:

我前面提到的
.xml
文件可能需要数小时才能上传和构建。我的教授希望用户能够使用已经完成的模型继续页面,同时将新模型发送到后台,用户在完成后收到电子邮件。我找到了发送电子邮件的材料,但没有找到继续页面的材料


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

理想情况下,您需要设置某种异步处理。我个人喜欢使用和RabbitMQ进行异步和消息传递。

在页面上放置文件上载控件

<asp:FileUpload ID="FileUpload1" runat="server"/>
看看是否可以将类似的上传插件集成到项目中(需要jQuery)


$(文档).ready(函数()
{
$(“#”)上传(
{
“swf”:“Scripts/uploadify.swf”,
'uploader':'Handler.ashx',
“自动”:正确,
“buttonText”:“选择文件”
});
});
如果不能做到这一点,则需要了解ajax的工作原理

Ajax通常使用XMLHttpRequest,这不允许您编码本地文件并将其发送到服务器。
您可以使用Flash swf处理同一页面上的上载,也可以使用目标为不可见1x1 iframe的表单


我在这个博客上找到了关于

的代码,我想打开一个小的I-frame,它实际上可以上传,可以让你的当前页面继续工作

因此,在当前页面上,您需要输入文件位置、文件名和所有内容,然后在i-frame中打开一个新页面。让i-frame知道源文件/文件夹、目标文件/文件夹,并让它在后台工作。因此,现在您的当前页面可以继续工作了


希望有帮助。

使用无头Java上传小程序。 在iFrame中加载文件传输小程序,让用户启动文件传输,当用户想要浏览网站的其余部分时,不要重新加载包含Java小程序(将上载文件)的iFrame。传输完成后,执行JAvaScript调用以关闭iframe

下面的示例使用FileCatalyst提供的Java小程序,但这种想法实际上适用于任何其他Java FTP小程序或ActiveX

<script>
    var browsePath = "";

    function browseAndAdd() {
      browsePath = document.FileCatalyst.browseLive(true);
   }

    function upload() {
    document.FileCatalyst.uploadLive();
   }

   function clearQueue() {
     document.FileCatalyst.clearQueue();
   }
 </script>

 <!--Uses onClick for demonstration only-->
 <form id="uploadform">
  <!--Launch a browse dialog and add the selected file to the queue-->
 <input type=button onClick="javascript:browseAndAdd();" value="Browse and Add to Queue" />

    <!-- Force upload of whatever is currently found in the transfer queue -->
    <input type=button onClick="javascript:upload();" value="Upload">

   <!-- Clear transfer queue (can be called only if no transfers are in progress) -->
    <input type=button onClick="javascript:clearQueue();" value="Clear Queue">
   </form>

var browsePath=“”;
函数browseandd(){
browsePath=document.FileCatalyst.browseLive(true);
}
函数上传(){
document.FileCatalyst.uploadLive();
}
函数clearQueue(){
document.FileCatalyst.clearQueue();
}

抱歉没有缩进,我发现用于插入代码的stackoverflow标记对用户不太友好。

为了澄清,您说“上传和构建可能需要几个小时”。我认为上传部分很快,构建需要很长时间?是的。按照现在的设置方式,一个小圆圈会弹出,并在整个构建过程中旋转。
<script type = "text/javascript">
$(document).ready(function()
{
     $("#<%=FileUpload1.ClientID %>").uploadify(
     {
       'swf': 'Scripts/uploadify.swf',
       'uploader': 'Handler.ashx',
       'auto': true,
      'buttonText': 'Select File(s)'
     });
});
</script> 
<script>
    var browsePath = "";

    function browseAndAdd() {
      browsePath = document.FileCatalyst.browseLive(true);
   }

    function upload() {
    document.FileCatalyst.uploadLive();
   }

   function clearQueue() {
     document.FileCatalyst.clearQueue();
   }
 </script>

 <!--Uses onClick for demonstration only-->
 <form id="uploadform">
  <!--Launch a browse dialog and add the selected file to the queue-->
 <input type=button onClick="javascript:browseAndAdd();" value="Browse and Add to Queue" />

    <!-- Force upload of whatever is currently found in the transfer queue -->
    <input type=button onClick="javascript:upload();" value="Upload">

   <!-- Clear transfer queue (can be called only if no transfers are in progress) -->
    <input type=button onClick="javascript:clearQueue();" value="Clear Queue">
   </form>