AJAX :: AsyncFileUpload Return Always: "The File Attached Is Invalid."
Apr 16, 2010
I'm using vs2010, Framework4 and the related AjaxControlToolkit v4.0.30210
Other controls works great such as the html editor, but the AsyncFileUpload return always "The file attached is invalid."
View 6 Replies
Feb 22, 2010
I'm trying to use the AsyncFileUpload control from the Asp.net Ajax Control Toolkit (Sept 30, 2009 stable build: 30930) . I've created a demo application and the control works fine. Files upload and all is well. When I try to use the control in my real application, I'm always receiving an error stating "The file attached is invalid". The AsyncFileUpload control returns this when the file uploaded is null.
To isolate the problem, I created a new master page exactly like the master page in my demo app. I also created an aspx page exactly like the page in my demo app. The upload still fails with a "The file attached is invalid" error. I also compared the web.config for the real app and the demo app and couldn't identify any differences that should matter. The code below is the test code in my real app. This code is exactly the same as the functioning code in the demo app with the exception of having different class names and file names. The web.config listed below is from the real app with the appsettings and connectionstrings removed. Real App Test Master Page:
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="aaaMasterPage.master.cs" Inherits="L1Admin.aaaMasterPage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<asp:ContentPlaceHolder id="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="scriptManager" EnablePartialRendering="true" runat="server" AsyncPostBackTimeout="180" />
<div>
<asp:ContentPlaceHolder id="content" runat="server">
</asp:ContentPlaceHolder>
</div>
</form>
</body>
</html>
Test Page:
<%@ Page Language="C#" MasterPageFile="~/aaaMasterPage.master" AutoEventWireup="true" CodeFile="aaaFileUploadTest2.aspx.cs" Inherits="aaaFileUploadTest2" Title="Untitled Page" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajax" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
<script type="text/javascript">
function pageLoad(sender, args) {
}
function startUpload(sender,args)
{
$('#uploadMessage p').html();
$('#uploadMessage').hide();
}
function uploadComplete(sender,args)
{
showUploadMessage(args.get_fileName() + " uploaded succesfully - " + + args.get_length() + " bytes", '');
}
function uploadError(sender, args)
{
showUploadMessage("An error occurred during uploading. " + args.get_errorMessage(), '#ff0000');
}
function showUploadMessage(text, color)
{
$('#uploadMessage p').html(text).css('color', color);
$('#uploadMessage').show();
}
</script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="content" Runat="Server">
<div id="uploadMessage"><p></p></div>
<ajax:AsyncFileUpload ID="pageBannerUpload"
CssClass="file_upload"
OnClientUploadError="uploadError"
OnClientUploadStarted="startUpload"
OnClientUploadComplete="uploadComplete"
onuploadedcomplete="upload_UploadedComplete"
runat="server" />
</asp:Content>
Real App Test Page Code Behind:
using System;
using System.IO;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
public partial class aaaFileUploadTest2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void upload_UploadedComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
{
if (pageBannerUpload.HasFile)
{
string path = MapPath("~/") + Path.GetFileName(e.filename);
pageBannerUpload.SaveAs(path);
}
}
}
Real App Test Web.config:
<?xml version="1.0"?>
<!--
Note: As an alternative to hand editing this file you can use the
web admin tool to configure settings for your application. Use
the Website->Asp.Net Configuration option in Visual Studio.
A full list of settings and comments can be found in
machine.config.comments usually located in
WindowsMicrosoft.NetFrameworkv2.xConfig
-->
<configuration>
<configSections>
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/>
<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
</sectionGroup>
</sectionGroup>
</sectionGroup>
</configSections>
<appSettings>
</appSettings>
<connectionStrings>
</connectionStrings>
<system.web>
<!--
Set compilation debug="true" to insert debugging
symbols into the compiled page. Because this
affects performance, set this value to true only
during development.
-->
<compilation debug="true">
<assemblies>
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Transactions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
<codeSubDirectories>
<add directoryName="CSCode"/>
<add directoryName="VBCode"/>
</codeSubDirectories>
</compilation>
<!--
The <authentication> section enables configuration
of the security authentication mode used by
ASP.NET to identify an incoming user.
-->
<authentication mode="Windows"/>
<!--
The <customErrors> section enables configuration
of what to do if/when an unhandled error occurs
during the execution of a request. Specifically,
it enables developers to configure html error pages
to be displayed in place of a error stack trace.
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
-->
<pages>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add tagPrefix="Annsa" namespace="Annsa.Controls" assembly="Annsa.Controls"/>
</controls>
<namespaces>
<add namespace="Microsoft.VisualBasic"/>
<add namespace="System.Data"/>
<add namespace="System.Drawing"/>
</namespaces>
</pages>
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" validate="false" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpHandlers>
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpModules>
<identity impersonate="true"/>
<trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true"/>
<!-- SESSION STATE SETTINGS
mode="Off|InProc|StateServer|SqlServer"
By default ASP.NET uses cookies to identify which requests belong to a particular session.
If cookies are not available, a session can be tracked by adding a session identifier to the URL.
To disable cookies, set sessionState cookieless="true".
-->
<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;user id=sa;password=" cookieless="false" timeout="20"/>
<!-- GLOBALIZATION
This section sets the globalization settings of the application.
-->
<xhtmlConformance mode="Legacy"/>
</system.web>
<location path="Pages">
<system.web>
<xhtmlConformance mode="Transitional"></xhtmlConformance>
</system.web>
</location>
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider,System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4">
<providerOption name="CompilerVersion" value="v3.5"/>
<providerOption name="WarnAsError" value="false"/>
</compiler>
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4">
<providerOption name="CompilerVersion" value="v3.5"/>
<providerOption name="OptionInfer" value="true"/>
<providerOption name="WarnAsError" value="false"/>
</compiler>
</compilers>
</system.codedom>
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules>
<remove name="ScriptModule"/>
<add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</modules>
<handlers>
<remove name="WebServiceHandlerFactory-Integrated"/>
<remove name="ScriptHandlerFactory"/>
<remove name="ScriptHandlerFactoryAppServices"/>
<remove name="ScriptResource"/>
<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add name="ScriptResource" verb="GET,HEAD" path="ScriptResource.axd" preCondition="integratedMode" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</handlers>
</system.webServer>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
View 3 Replies
Jan 23, 2010
I am using this control to give the user the possibility to upload up to 5 pics. Well, it generally works fine but i started to test it using a folder full of pics. This folder contains more than 900 pics which are named from "DSC_8138.jpg" to "DSC_9255.jpg" (some has been deleted).
When i try to upload the pic "DSC_8138.jpg" it saves the pic "DSC_8168.jpg".
When i try to upload the pic "DSC_8141.jpg" it saves the pic "DSC_8147.jpg".
There is not any clear critieria in this.
I am quite sure that my code in the AsyncFileUpload1_UploadedComplete method cannot cause this problem. Actually, when i try to upload the pic "DSC_8141.jpg" the file name is still "DSC_8141.jpg" even though the pic uploaded is the "DSC_8147.jpg". in any case, the control deals with the uploading process.
[Code]....
[Code]....
View 2 Replies
Nov 29, 2010
I'm developing a website using .NET 3.5 and I'm having problems with the asyncfileupload control.The problem occurs when you upload a file, and then try upload the same file again. On the second upload, none of the clientside nor serverside methods fire. Everything works fine if you upload one file, upload a file with a different name and then upload the first one again.
This is a bit if a pain because on the page i allow the user to delete the uploaded images so i need the functionality to upload a file with the same name as the previous upload.Has anyone else encountered this and are there any work arounds?
View 2 Replies
Aug 24, 2010
I have added AsyncFileUpload to creata user wizard control. When I tried to upload the file this control seemed to work fine an show confirmation at the end. But when I checked the website no file has been uploaded at all.know why its not uploading the files/images
[Code]....
[Code]....
My folder hierarchy is Users/Resources/Avatars/UsernameThere is also an error appears for this line of code-
Error: CS0176:Member'System.Web.UI.ScriptManager.RegisterClientScriptBlock(System.Web.UI.Control,
System.Type, string, string, bool)' cannot be accessed with an instance
reference; qualify it with a type name instead
[Code]....
View 6 Replies
Nov 8, 2010
I have downloaded a AsyncFileUpload example, I edited the uploadError javascript and now it is working perfectly:
[Code]....
It works perfectly how I wanted it, like this: I upload a file, if it's an Image I get the Lime AsyncFileUpload background, and the file name and size are written under the AsyncFileUpload, if it's not an Image, I get the error label shown, with red AsyncFileUpload background, and if I upload another file, it keeps working the same thing every single time, but only shows the last uploaded image name at the end of an image upload, not all of the images.I tried to merge it with my website, and ended with this code:
[Code]....
but in my website its just working the first time only, then rest times I'm getting the uploadError() function working instantly when I click upload, even if i have selected an image or anything else.
View 2 Replies
Dec 16, 2010
I'm saving a file with the asyncfileupload ajax plugin from the ajax toolkit and when I save it I'm changing the filename (to avoid multiple files with the same name).
After the file is uploaded, the user needs to know what the file has been named so I'm using this javascript code on the onclientuploadcomplete event.
function UploadComplete(sender, args) {
alert(args.get_fileName());
}
This works except it gets the old name, not the new name (which is determined server-side). Is there any way to get it to return the new name rather than the old name? Or any work around to achieve this?
This is my code in the code behind the get the new filename:
string filename = DateTime.Now.ToString("dMyHmsf") + e.filename;
string strPath = MapPath("~/SavedImages/") + filename;
AsyncFileUpload1.SaveAs(strPath);
View 1 Replies
May 12, 2010
I am using an AsyncFileUpload control inside a FormView. I only want the file to saved during the FormView's ItemInserting event. In trying to find a way to do this, the only thing I could come up with was to store the AsyncFileUpload control or the PostedFile in a Session variable during the OnUploadedComplete() event and then invoke the SaveAs method in the ItemInserting event. Problem is the SaveAs method is throwing an exception saying "Cannot Access A Closed File". If I invoke SaveAs in the OnUploadedComplete() event, it saves successfully, but I need it to only save when the user submits the form. this error or perhaps a better way to save the file during ItemInserting()?
[Code]....
View 1 Replies
Sep 30, 2010
I want to update an updatepanel after the user has uploaded a photo via the asynfileupload control.
Below is my current code. I also tried setting updatemode="conditional" to "false" and then in code-behind call upnlPhotos.update, but without luck...
Upload photo: <cc1:AsyncFileUpload ID="afuPhoto" runat="server" /><br />
<asp:UpdatePanel ID="upnlPhotos" runat="server">
<ContentTemplate>
<asp:DataList ID="dlPhotos" DataSourceID="dsPhotos" DataKeyField="id" RepeatColumns="5" RepeatDirection="Horizontal" GridLines="None" runat="server" >
<ItemTemplate>
<img alt="" src='/images/trouwlocatiefotos/thumbs/<%# Eval("locpath")%>' /><br />
</ItemTemplate>
</asp:DataList>
<asp:SqlDataSource ID="dsPhotos" SelectCommand="SELECT id,locationid,locpath from location_photos lp where locationid=@locationid" ConnectionString="<%$ConnectionStrings:conn1 %>" runat="server">
<SelectParameters>
<asp:QueryStringParameter QueryStringField="id" Type="Int32" Name="locationid" />
</SelectParameters>
</asp:SqlDataSource>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="afuPhoto" EventName="UploadedComplete" />
</Triggers>
</asp:UpdatePanel>
View 29 Replies
Jan 24, 2011
I am having a strange issue associated with AsyncFileUpload control. after the upload, I am updating the page by calling__doPostBack function from ClientUploadComplete event handler. it works fine first time, but next time I try to upload the file, it refreshes the page first before uploading, then does the upload and refreshes the page again. not sure why refresh page is being called twice once before the upload and once after the upload. I have a simplified version of this code which has this bug.
[Code]....
View 2 Replies
Jul 13, 2010
AsyncFileUpload control is rendering in this way.
<span
id="Span1"><input
type="hidden"
name="uploadinput$ctl00"
id="uploadinput_ctl00"
/><div
id="uploadinput_ctl01"
name="uploadinput_ctl01"><input
name="uploadinput$ctl02"
type="file"
id="uploadinput_ctl02"
id="uploadinput_ctl02" onkeydown="return false;"
onkeypress="return false;"
onmousedown="return false;"
style="width:
355px;"
/></div></span>
Is there any way to assign styles(like width, position,top etc..) to Input type=file element alone.One way i can see, is using Jquery document.ready eventhandler,
$(function(){
var element = document.getElementById('<%=uploadinput.ClientID%>').lastChild.firstChild;
element.style.width = '150px';
but the problem with that is, i am not able to identify input type = file element after postback in that document.ready eventhandler.please let me know if there is any other way to assign styles to input file element of AsyncFileUpload control with out any issues.
View 3 Replies