I am using Ayscupload to on a site. The upload works mostly.
I have an issue I can't place. Sometimes, mostly on mobile, the site will not upload the first file. I thought it might have been the progress bar so I removed it and I got the same result.
The first file uploads and the little yellow dot blinks but it never finishes the file. Now I can select another file while this one is blinking and that file works. When I press the "Upload" button to save the files all of them will be there except that firston If I leave the upload page and then return to it the page will now work perfectly for that session. It is only the FIRST file on the FIRST time. It is frustrating my users.... Thoughts??
Here is the DIV that contains the control! I am using ASP.NET 3.5 and AJAX
<div>
<asp:Label ID="lblNoResults" runat="server" Visible="true">No Uploaded Files Yet.</asp:Label>
<asp:Repeater ID="repResults" runat="server" Visible="false">
<HeaderTemplate>
<div>Uploaded Files</div>
</HeaderTemplate>
<ItemTemplate>
<%#DataBinder.Eval(Container.DataItem, "Filename")%>
(<%#DataBinder.Eval(Container.DataItem, "ContentLength").ToString & " bytes"%>)
<br />
</ItemTemplate>
</asp:Repeater>
<br />
<asp:Repeater ID="repInvalidResults" runat="server" Visible="false">
<HeaderTemplate>
<div>Invalid Files</div>
</HeaderTemplate>
<ItemTemplate>
File: <%#DataBinder.Eval(Container.DataItem, "Filename")%>
(<%#DataBinder.Eval(Container.DataItem, "ContentLength").ToString() + " bytes"%>)
<br />
Mime-type: <%#DataBinder.Eval(Container.DataItem, "ContentType").ToString()%>
<br /><br />
</ItemTemplate>
</asp:Repeater>
</div>
10 Answers, 1 is accepted
Unfortunately, I do not see RadAsyncUpload declaration in the div provided. Could you double-check if the posted snippet contains the RadAsyncUpload markup? I would suggest you to prepare an isolated runnable sample which could be used for the issue reproduction. And could you specify the OS version and browser type and version used to reproduce the issue?
As a side note, since you are using .NET 3.5, I would like to inform you that there is a general ASP.NET AJAX Extensions issue, concerning the new iOS 8 and OS X Safari versions. It is affecting sites using ASP.NET 3.5. Basically, the new Safari version is not properly recognized by the AJAX framework as a browser that supports partial rendering, which breaks the AJAX technology. This seems as a probable reason for the issue faced.
If you are facing the same issue, in order to fix this issue, you need to edit your browser definition files so that the latest Safari is properly recognized. You can find more detailed information about the issue as well as a workaround for it in the following stackoverflow thread.
Regards,
Dimitar
Telerik
Yeah Feel like a goof! There is a RadUploadAsync and I will have the code below. It is not the iOS 8 issue but thanks fro the heads up! This is mostly Android!
I'm using 2013.3.1015.40 and VB.NET with no real code behind for this section but I will post. The weird thing is it works after the first file! I will also say, not that this is the problem, we converted from the old Radupload.
Thanks for any help! We are getting real anxious over here!
Wayne
DIV:
<div class="upload">
<telerik:RadProgressManager id="rdProgress1" runat="server" />
<telerik:RadAsyncUpload ID="upPics" runat="server" OverwriteExistingFiles="false" MultipleFileSelection="Automatic"
AllowedFileExtensions=".jpg,.gif,.jpe,.jpeg,.png" MaxFileSize="10485760" />
<br />
<asp:LinkButton ID="buttonSubmit" runat="server" Text="Upload" CssClass="medium button blue" />
<asp:HyperLink ID="hypReturn" runat="server" CssClass="medium button blue" >Return</asp:HyperLink>
</div>
CODE BEHIND:
Private Sub buttonSubmit_Click(sender As Object, e As System.EventArgs) Handles buttonSubmit.click
'clear invalid
'If upPics.InvalidFiles.Count > 0 Then
'empty
'upPics.InvalidFiles.Clear()
'End If
dest = dest & ListID & "\" 'create sub dir based on ListingID
Dim tbAdp As New tblListing_ImagesTableAdapter 'declare tableadapter to us Images Table
'for each file we will upload and count
'Dim upf As UploadedFileCollection = upPics.UploadedFiles
If upPics.UploadedFiles.Count > 0 Then
For Each validfile As UploadedFile In upPics.UploadedFiles
'create directory
If Not Directory.Exists(dest) Then
Directory.CreateDirectory(dest)
End If
'upfile
Dim upfile As String = ListID & "-" & validfile.GetName
'lower characters
upfile = upfile.ToLower
''we need to remove spaces, and other odd characters from file names!!!
Dim Util As New Utility
upfile = Util.StripNonAlphaNumericCharacters(upfile)
'reduce length
If upfile.Length > 40 Then
Dim ext As String = validfile.GetExtension 'upfile.Substring(upfile.LastIndexOf(".") + 1, 3).ToUpper
upfile = upfile.Substring(0, 40)
upfile = upfile & ext '"." & ext
End If
If Not File.Exists(dest & upfile) Then
'not sure?? threw new exception in old code
'savefile
validfile.SaveAs(dest & upfile)
'create DB record - if there are no other records for this listing use as main!
If tbAdp.CountListingImages(ListID) = 0 Then
tbAdp.Insert(System.Guid.NewGuid, ListID, "listimgs/" & ListID & "/" & upfile, validfile.GetExtension, True)
Else
tbAdp.Insert(System.Guid.NewGuid, ListID, "listimgs/" & ListID & "/" & upfile, validfile.GetExtension, False)
End If
'7/2012 - new resize by set image size
'now we need to open the image and resize if nec
Dim flO As String = dest & upfile
Dim flOt As String = dest & "tmp" & upfile
Dim imgPhoto As Image = ScaleImage(Image.FromFile(flO), 640) 'set width to 560
Dim fExt As String = validfile.GetExtension
If validfile.GetExtension.ToUpper = ".JPG" Or validfile.GetExtension.ToUpper = ".JPEG" Then
imgPhoto.Save(flOt, Imaging.ImageFormat.Jpeg)
ElseIf validfile.GetExtension.ToUpper = ".GIF" Then
imgPhoto.Save(flOt, Imaging.ImageFormat.Gif)
ElseIf validfile.GetExtension.ToUpper = ".PNG" Then
imgPhoto.Save(flOt, Imaging.ImageFormat.Png)
End If
imgPhoto.Dispose()
'overwrite original and delete the temp
File.Copy(flOt, flO, True)
File.Delete(flOt)
Else
'file existed!!
End If
Next
lblNoResults.Visible = False
repResults.Visible = True
repResults.DataSource = upPics.UploadedFiles
repResults.DataBind()
Else
lblNoResults.Visible = True
repResults.Visible = False
End If
' If upPics.InvalidFiles.Count > 0 Then
'repInvalidResults.Visible = True
'repInvalidResults.DataSource = upPics.InvalidFiles
'repInvalidResults.DataBind()
' End If
End Sub
Unfortunately the issue is not reproducible on my side with latest Chrome browser for Android.
Could you specify the Android version used, the browser and its version? Thus, we would determine what module is used for uploading. One option to debug the file upload is to connect your mobile device to the PC and open a debug session in Chrome. Thus, you would be able to see all requests from the real device and their status when uploading - video.
In addition, could you please handle the OnClientFileUploadFailed event and the OnClientValidationFailed event and send us the error message?
Also, you may try to set the following configuration in the web.config:
<
location
path
=
"Telerik.Web.UI.WebResource.axd"
>
<
system.web
>
<
authorization
>
<
allow
users
=
"*"
/>
</
authorization
>
</
system.web
>
</
location
>
And last, I tested with the version you pointed and although the issue is not reproducible on my side, it may be one that has been fixed in latest version. So you may download a free latest trial and test if the issue is still reproducible with it.
Regards,
Dimitar
Telerik
Thank you for your response. As usually happens I got side tracked and now I am back to this issue.
It still occurs. We did try a newer version. I still have to try the change to the web.config as you mentioned.
BUT I fired up Chorme developer tools and looked at the console when uploading that first file. I get the same results as the mobile clients do, the first file fails. But iknow I see an error message!!! Maybe you can tell me what it means!
The error means that the JSON you are trying to parse is not well formatted - it contains characters which break the parsing process. This is explained with a few examples in the parseJSON() docs. The following forum thread also deals with a similar error.
Regards,
Dimitar
Telerik
Thanks for the info. That's what I got.
And call me stupid but I am not calling parseJSON myself. Google Chrome points to three files; one is JQuery, the other two are Telerik Files.
That's where I am confused...how can I change that? What is actually angering it??
It also only happens on the mobile version of the site. Whether or not its loaded on the desktop.
First file only! I'm stumped i looked through my html line by line on both the page and the master page. No Errors.
I fixed some CSS errors thinking that might help! NOPE! No error message in the on client error handles...at least not that I could produce. It may be interesting the file that fails never makes it to the temp upload dir.
Where do i want to put the location tag in the web.config?? never done that before...worth a shot.
I tried isolating the control for fun. Same result.
The page below has no code in the code behind and has only the following HTML.
At this point it seems like a problem with the control itself or some config problem.
Any ideas?
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="upTestAug.aspx.vb" Inherits="AFOHAB.upTestAug" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<%@ Register tagprefix="telerik" namespace="Telerik.Web.UI" assembly="Telerik.Web.UI" %>
<!DOCTYPE html>
<
html
>
<
head
runat
=
"server"
>
<
title
>test upload no code</
title
>
</
head
>
<
body
>
<
form
id
=
"form1"
runat
=
"server"
>
<
cc1:ToolkitScriptManager
id
=
"ToolkitScriptManager1"
runat
=
"server"
/>
<
div
>
<
telerik:RadProgressManager
id
=
"rdProgress1"
runat
=
"server"
/>
<
telerik:RadAsyncUpload
ID
=
"upPics"
runat
=
"server"
OverwriteExistingFiles
=
"false"
MultipleFileSelection
=
"Automatic"
UseApplicationPoolImpersonation
=
"true"
AllowedFileExtensions
=
".jpg,.gif,.jpe,.jpeg,.png"
MaxFileSize
=
"10485760"
/>
</
div
>
</
form
>
</
body
>
</
html
>
There is a known compatibility issue with AjaxControlToolkit and it is the most likely cause for the issue. You may find more information about it and how to resolve it in the Telerik UI for ASP.NET AJAX and AJAX Control Toolkit help article.
Regards,
Dimitar
Telerik