AjaxControlToolkit Asynch File Uploader работает неправильно - PullRequest
0 голосов
/ 07 октября 2011

У меня есть AsynchFileUpload на моей странице, и по какой-то причине, когда я пытаюсь использовать его для сохранения файла на сервере, он падает.

Элемент управления позволяет мне выбрать файл локально и отображаетпуть к локальному файлу в его текстовом поле, НО, когда я затем нажимаю кнопку на своей странице, которую я собираюсь использовать для отправки всех деталей, затем загружаю страницу, все идет не так, и я получаю исключение Null Ref из AsynchFileUploader.

Мой загрузчик является довольно простым и выглядит следующим образом:

   <cc1:AsyncFileUpload runat="server" 
                                  ID="AsyncFileUpload2" 
                                  Enabled="true" 
                                  Visible="true"/>

Загрузчик находится в контейнере вкладок / панели вкладок / шаблоне контента / панели обновлений с режимом обновления, установленным в условный режим.Я довольно новичок в ASP, так что я не уверен, могут ли проблемы, связанные с загрузчиком, вызвать проблему.

Тогда в моем коде у меня есть:

 Dim filename As String = System.IO.Path.GetFileName(AsyncFileUpload2.FileName)

        Dim comments As String = SpellTextBox1.Text


        Dim NewDirectory As String = Server.MapPath("~/Helpdesk/UploadedFiles/" + TicketID.ToString())

        Try



           'Check if directory exists
           If Not Directory.Exists(NewDirectory) Then

              ' Create the directory.
              Directory.CreateDirectory(NewDirectory)

           End If

           AsyncFileUpload2.SaveAs(NewDirectory + "\" + filename)

        Catch _ex As IOException
           'Silently error for now
           'Response.Write(_ex.Message)

        End Try

Кажется, что имя файлапотерян где-то после нажатия кнопки или просто никогда не сохраняется

1 Ответ

0 голосов
/ 11 октября 2011

Решено путем:

Private Sub AsyncFileUpload1_UploadedComplete(ByVal sender As Object, ByVal e As AjaxControlToolkit.AsyncFileUploadEventArgs) Handles AsyncFileUpload1.UploadedComplete
      If e.State = AjaxControlToolkit.AsyncFileUploadState.Success Then

         Dim ticketID As String = Request.QueryString("ID").ToString()
         Dim filename As String = e.FileName

         Dim temp() As String = filename.Split("\")
         filename = temp(temp.Length - 1)


         Dim NewDirectory As String = Server.MapPath("~/Helpdesk/UploadedFiles/" + ticketID + "/")

         'Check if directory exists
         If Not Directory.Exists(NewDirectory) Then

            ' Create the directory.
            Directory.CreateDirectory(NewDirectory)

         End If

         ' Save the file on the server
         AsyncFileUpload1.SaveAs(NewDirectory + filename)

         'Now put the file details in the database
         dbSaveFile(ticketID, filename, "UploadedFiles/" + ticketID + "/" + filename, "")

         'Raise some kind of notification informing the user that this has been sucessfull



         'And rebind the control
         ' Get Event Details and populate text fields
         Dim dsFiles As DataSet = dbGetFiles(ticketID)

         If dsFiles Is Nothing Then
            ' No need to error here if we have no files
         Else
            gvFiles.DataSource = dbGetFiles(ticketID)
            gvFiles.DataBind()

         End If

      Else
         ' Do nothing
      End If
   End Sub
...