Я реализую telerik RadUpload в своем веб-приложении asp.net. Я добавил соответствующие записи обработчика и модуля в web.config.
<add path="Telerik.RadUploadProgressHandler.ashx"
type="Telerik.Web.UI.RadUploadProgressHandler" verb="*" validate="false" />
<add name="RadUploadModule"
type="Telerik.Web.UI.RadUploadHttpModule" />
У меня есть функция, с помощью которой мне нужно загрузить файл Excel, и мне нужно видеть индикатор выполнения при загрузке, пока он не завершится на 100%.
ПРОБЛЕМА: Мне интересно, как получить процент загруженного файла и показать его в Progressarea.
МОЙ КОД (Button_Click):
Const total As Integer = 100
Dim progress As RadProgressContext = RadProgressContext.Current
progress.Speed = "N/A"
Dim files As UploadedFileCollection = RadUpload1.UploadedFiles
Dim up As RadUpload = RadUpload1
If files IsNot Nothing AndAlso 0 <> files.Count Then
For i As Integer = 0 To total - 1
progress("SecondaryTotal") = total.ToString()
progress("SecondaryValue") = i.ToString()
progress("SecondaryPercent") = i.ToString()
progress("CurrentOperationText") = files(0).GetName() & " is being processed..."
If Not Response.IsClientConnected Then
Exit For
End If
progress.TimeEstimated = (total - i) * 100
---------ACTUAL UPLOAD FUNCTIONALITY HERE----------
objUpload.CreateBulkUploadRequest(bytes)
Next
End If
Private Sub CreateBulkUploadRequest(bytes)
StoreDocumentinImageServer(bytes)
End Sub
Public Function StoreDocumentinImageServer(ByVal PostData As Byte()) As Integer
Try
Dim req As HttpWebRequest
Dim resp As HttpWebResponse
Dim postStream As Stream
Dim respStream As StreamReader
Dim Url As String
Dim response As String = String.Empty
Dim ImageId As Integer = 0
Dim qryString As New StringBuilder("?fileSize=")
qryString.Append(PostData.Length)
qryString.Append("&userId=" + RequestedBy.ToString)
qryString.Append("&applicationName=" + RequestType.ToString)
qryString.Append("&imageName=" + FileName)
qryString.Append("&mode=Insert")
Url = ImageServiceUrl + qryString.ToString
req = CType(WebRequest.Create(Url), HttpWebRequest)
req.Method = "POST"
req.ContentType = contenttype
req.KeepAlive = True
req.ContentLength = PostData.Length
postStream = req.GetRequestStream()
postStream.Write(PostData, 0, PostData.Length)
resp = CType(req.GetResponse(), HttpWebResponse)
respStream = New StreamReader(resp.GetResponseStream(), Encoding.Default)
response = respStream.ReadToEnd()
respStream.Close()
resp.Close()
Catch ex As Exception
Throw ex
End Try
End Function
ПРОБЛЕМА ---- Теперь метод CreateBulkUploadRequest()
является синхронным, его загрузка займет 10 минут и, наконец, выйдет из выполнения метода. Теперь подумайте, как мне обновить область прогресса и процент загрузки файла.
Моя самая большая проблема - CreateBulkUploadRequest () находится в цикле обновления кода индикатора выполнения.
поэтому он вызывает столько раз, сколько пытается обновить область прогресса.
Я ДЕЙСТВУЮ, ПРАВИЛЬНО ????????
Пожалуйста, дайте мне знать, если мой вопрос не ясен.
Ждем любых предложений.