AjaxFileUpload错误和UploadComplete不会被激活

时间:2014-06-28 14:05:02

标签: c# asp.net ajaxcontroltoolkit

我正在使用ajaxcontroltoolkit而且我遇到了一个问题。这是我的代码

<div id="DragDrop" style="margin: 20px auto 20px auto; width: 50%;"center">
<ajaxToolkit:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"
<ajaxToolkit:AjaxFileUpload ID="AjaxFileUpload1" runat="server" Width="70%" 
        style="margin:0px auto; min-width:300px;" 
        onuploadcompleteall="AjaxFileUpload1_UploadCompleteAll" 
        onuploadcomplete="AjaxFileUpload1_UploadComplete" />
    <div id="TextUpload" align="center" style="margin: 0px auto 0px auto">
    Text/Url Upload:<asp:TextBox id="Text" runat="server">
    </asp:TextBox>
    </div>
</div>

当我上传我的文件时,我得到了红色错误标题,我的ajaxfileuploadcomplete和我的ajaxfileuploadallcomplete都没有。我在google上搜索了这个,我发现没有一个修复适用于这种情况。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using AjaxControlToolkit;

public partial class Default : FindLocation
{
    Guid? CanisterID = null;
    Guid? FileID = null;
    string path = "";
    string name;
    string type;
    int size;
    protected void Page_Load(object sender, EventArgs e)
    {
        path = Find();
    }
    protected void AjaxFileUpload1_UploadCompleteAll(object sender, AjaxControlToolkit.AjaxFileUploadCompleteAllEventArgs e)
    {
        throw new Exception();
    }
    protected void AjaxFileUpload1_UploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
    {
        throw new Exception();
        // Generate file path
        string filePath = "~/Images/" + e.FileName;

        // Save upload file to the file system
        ajaxUpload1.SaveAs(MapPath(filePath));
        name = e.FileName;
        type = e.ContentType;
        size = e.FileSize;

        AjaxFileUpload1.SaveAs(MapPath(path));
        DataClassesDataContext db = new DataClassesDataContext();
    }
}

我将这些添加到我的web.config

  <system.webServer>

        <validation validateIntegratedModeConfiguration="false"/>
        <handlers>
          <add name="AjaxFileUploadHandler" verb="*" path="AjaxFileUploadHandler.axd" type="AjaxControlToolkit.AjaxFileUploadHandler,            AjaxControlToolkit"/>
        </handlers>
      </system.webServer>
      <system.web>
        <httpHandlers>
          <add verb="*" path="AjaxFileUploadHandler.axd" type="AjaxControlToolkit.AjaxFileUploadHandler, AjaxControlToolkit"/>
        </httpHandlers>

我把它放在页面顶部

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %>

此页面上我也没有任何查询字符串。知道什么是错的吗? ![这是错误的图片] [1]

http://i.stack.imgur.com/k7zh8.jpg

2 个答案:

答案 0 :(得分:0)

问题很可能是由于您正在上传文件,该文件的大小超过了允许的4 MB文件。您可以通过将MaxRequestLength web.config属性设置为更大的值来增加.NET的默认值。有关详细信息,请参阅这些文章:Maximum value of maxRequestLength?While uploading large files getting error

答案 1 :(得分:0)

为了您的方便,我创建了一个示例网站,演示如何通过https://onedrive.live.com/?cid=f8992524aeae67e6&id=F8992524AEAE67E6%21107&authkey=上传文件! web.config取自默认的AjaxToolkit演示项目。

您可以在以下视频中查看解决方案的工作原理:http://screencast.com/t/fF4N6MeGc70c

祝你好运, 瘤胃