2014-03-25 144 views
0

我有一个asp.net网站应用程序,我想使用AjaxControlToolkit文件上传组件执行多个文件上传,但OnUploadStartOnUploadComplete方法在我上传文件时不会触发。而且只有第一个文件被上传,然后停止。AjaxFileUpload服务器事件没有触发

enter image description here

我的代码:

<asp:AjaxFileUpload ID="FileUploader" runat="server" Mode="Auto" OnUploadComplete="FileUploader_UploadComplete" OnUploadStart="FileUploader_UploadStart" AllowedFileTypes="jpg,jpeg,gif,png" /> 

Protected Sub FileUploader_UploadComplete(sender As Object, e As AjaxFileUploadEventArgs) 
    Dim path As String = Server.MapPath("~/Data/Gallery/Pictures/" + GetFolderName() + "/") + e.FileName 
    FileUploader.SaveAs(path) 
End Sub 

Protected Sub FileUploader_UploadStart(sender As Object, e As AjaxFileUploadStartEventArgs) 
    'Create folder 
    IO.Directory.CreateDirectory("~/Data/Gallery/Pictures/" + GetFolderName()) 
End Sub 

我设置断点的事件,但他们不点火。我向标记添加了enctype="multipart/form-data" method="post"(根据this主题),并将HTTP处理程序添加到了web.config文件,但它仍然无法正常工作。我究竟做错了什么?请帮帮我。

回答

0

对于网站(一Web应用程序之间重要的区别,因为它似乎很好地工作),它看起来使用的控制OnUploadCompleteOnUploadStart属性时一样,这是行不通的。

而是尝试直接在vb代码隐藏中处理事件。 另外,在创建目录时不要忘记使用Server.MapPath作为你的路径。

<asp:AjaxFileUpload ID="FileUploader" runat="server" Mode="Auto" AllowedFileTypes="jpg,jpeg,gif,png" /> 

Protected Sub FileUploader_UploadComplete(sender As Object, e As AjaxFileUploadEventArgs) Handles FileUploader.UploadComplete 
    Dim path As String = Server.MapPath("~/Data/Gallery/Pictures/" + GetFolderName() + "/") + e.FileName 
    FileUploader.SaveAs(path) 
End Sub 

Protected Sub FileUploader_UploadStart(sender As Object, e As AjaxFileUploadStartEventArgs) Handles FileUploader.UploadStart 
    'Create folder 
    IO.Directory.CreateDirectory(Server.MapPath("~/Data/Gallery/Pictures/" + GetFolderName())) 
End Sub 

希望这对你有效。