首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有一种方法,我继续一个网站,而一个文件正在上传?

是否有一种方法,我继续一个网站,而一个文件正在上传?
EN

Stack Overflow用户
提问于 2012-10-19 02:02:35
回答 4查看 228关注 0票数 4

背景:

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

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

问题:

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

我听说过使用AJAX加载页面吗?

EN

回答 4

Stack Overflow用户

发布于 2012-10-19 04:36:32

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

代码语言:javascript
复制
<asp:FileUpload ID="FileUpload1" runat="server"/>

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

代码语言:javascript
复制
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;
        }
    }
}

看看是否可以将像上传这样的上传插件集成到项目中(需要jQuery)。

代码语言:javascript
复制
<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处理同一页面上的上载,也可以使用具有不可见1x1iframe目标的表单。

我在这个博客上发现了关于asp.net中的文件上载的代码

票数 1
EN

Stack Overflow用户

发布于 2012-10-19 05:05:24

我认为有一个小的I-帧打开,这将实际做的上传,将让您的当前页面继续工作。

因此,在当前页面上,您需要文件位置和文件名等等,然后在i帧中打开一个新页面。让我框架知道源文件/文件夹,目标文件/文件夹,并让它在后台工作。所以现在您的当前页面可以继续其工作了。

希望这能有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2012-10-20 15:27:24

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

下面的示例使用FileCatalyst提供的Java,但其思想实际上将与任何其他Java小程序或ActiveX一起使用。

代码语言:javascript
复制
<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>

对于缺乏缩进表示歉意,我发现用于插入代码段的堆栈溢出标记对用户不太友好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12966353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档