IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques & Frameworks Discussion :

Uplaod d'un fichier [Prototype]


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 314
    Par défaut Uplaod d'un fichier
    Bonjour à tous.
    est-il possible de faire des téléchargements cotés serveur (Upload) en AJAX en utilisant prototype ?
    merci.

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Oui, que ce soit avec ou sans Prototype. Une requête Ajax est lancée en javascript mais ce qui se passe coté serveur n'a plus rien à voir avec javascript. Tout ce que tu fais habituellement en langage serveur est donc faisable avec Ajax.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 314
    Par défaut
    j'ai essayer mais le $_FILE['file'] ne me retour en rien !

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Là, j'ai peur de ne pas trop comprendre ce que tu cherches à faire... Si tu souhaites récupérer ton fichier sur le retour Ajax, effectivement, ça va poser problème car la réponse est soit du texte soit du xml. En revanche, lancer l'upload du fichier via php (par exemple) sur un script appelé via Ajax est me semble-t-il possible.
    Ceci dit, sans code et sans plus d'explications, c'est un peu difficile de répondre !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    Une solution serait l'utilisation d'une iframe cachée dans laquelle tu soumettrais le formulaire

  6. #6
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    218
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 218
    Par défaut
    Default.aspx

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    <%@ Page Language="VB" AutoEventWireup="true" CodeFile="Default.aspx.vb" Inherits="_Default" %>
     
    <html>
    <head>
    <title>ASP.NET AJAX EXTENSIONS - FILE UPLOAD WORKAROUND</title>
     
    <script>
    function iFrame_OnUploadComplete() { 
    	document.form1.btnUploaded.click();	
    }
    </script>
    </head>
    <body>
    <form id="form1" target="_self" runat="server">
        <asp:ScriptManager ID="ScriptManager1" EnablePartialRendering="true" runat="server" />
     
    	<!-- this label is just to make sure that the page is working without any postback -->
    	<asp:Label ID="lblPageLoadTime" runat="server" Text="Label" />
     
    	<!-- an iframe that loads the same page, but just displays file upload panel (pnlFileUpload) -->
    	<asp:Panel ID="pnlIFrame" runat="server">
    		<iframe src="default.aspx?MODE=IFRAME" style="width:300px;height:100px;border-width:0;" frameborder="0">
    			Your browser does not support iframes
    		</iframe>
    	</asp:Panel>
     
    	<asp:UpdatePanel ID="pnlAjax" runat="server">
     
    		<ContentTemplate>	
     
    			<!-- a button that raises its click event after file upload in iframe is complete -->
    			<asp:Button ID="btnUploaded" style="display:none;" UseSubmitBehavior="false" runat="server" OnClick="btnUploaded_Click" />
     
    			<!-- a listbox to display all the list of files uploaded in the session -->
    			List of files uploaded:<br />			
    			<asp:ListBox ID="lstFilesList" style="width:300px;height:150px;" runat="server" />
     
     
    		</ContentTemplate>
     
    		<Triggers>
    			<asp:AsyncPostBackTrigger ControlID="btnUploaded" EventName="Click" />
    		</Triggers>
     
    	</asp:UpdatePanel>
     
     
    	<!-- a panel for file upload section -->
    	<asp:Panel ID="pnlFileUpload" Visible="false" runat="server">
     
    		<asp:FileUpload ID="fileTestUpload" runat="server" />
     
    		<br /><asp:Button ID="btnUpload" Text="Upload" runat="server" />
     
    	</asp:Panel>
     
     
    </form>
     
     
    </body>
    </html>
    Default.aspx.cs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    Partial Class _Default
        Inherits System.Web.UI.Page
     
    	Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    		lblPageLoadTime.Text = "This page was loaded at: " & Now.ToString
    		GenerateUploadForm()
    	End Sub
     
    	Protected Sub GenerateUploadForm()
    		' if querystring parameter "MODE" is set to "IFRAME" 
    		'then just display file upload panel (pnlFileUpload) and hide everything else
    		Dim mode As String = Request.QueryString("MODE")
    		If Not mode = "IFRAME" Then Return
    		pnlAjax.Visible = False
    		pnlIFrame.Visible = False
    		lblPageLoadTime.Visible = False
    		pnlFileUpload.Visible = True
    		If Not IsPostBack Then Session("UploadedDocumentsList") = Nothing
    	End Sub
     
    	Protected Sub btnUploaded_Click(ByVal sender As Object, ByVal e As System.EventArgs)
    		If Session("UploadedDocumentsList") Is Nothing Then Return
    		' display list of files uploaded in the listbox
    		Dim filesArray As ArrayList = CType(Session("UploadedDocumentsList"), ArrayList)
    		lstFilesList.DataSource = filesArray
    		lstFilesList.DataBind()
    	End Sub
     
    	Protected Sub btnUpload_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnUpload.Click
            ' when upload button is clicked, save the filename to the session
     
            If fileTestUpload.HasFile Then
                Try
                    fileTestUpload.SaveAs(Server.MapPath(".\") & _
                                          fileTestUpload.FileName)
     
                Catch ex As Exception
                    ex.Message.ToString()
                End Try
     
            End If
     
            If Not fileTestUpload.HasFile Then Return
     
            Dim filesArray As ArrayList
            ' create new arrayList for storing filenames if it does not already exist
            If Session("UploadedDocumentsList") Is Nothing Then
                filesArray = New ArrayList
            Else
                filesArray = CType(Session("UploadedDocumentsList"), ArrayList)
            End If
            filesArray.Add(fileTestUpload.FileName)
            Session("UploadedDocumentsList") = filesArray
            ' the following code triggers upload completion event in client side
            ClientScript.RegisterStartupScript(Page.GetType, "Upload Completed", "window.parent.iFrame_OnUploadComplete();", True)
        End Sub
     
    End Class
    Si tu veux le code en C#, je vous le donnerez demain.

  7. #7
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 314
    Par défaut
    bonjour,
    en fait ce que je voulais faire est que j'ai un formulaire transmis en ajax , et je veux permettre l'upload d'une image sur un boutton indépendant (à la manière de gmail) , j'utilise PHP et prototypeJS.
    (merci Identifiant pour le code )

  8. #8
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    C'est bien ce que je disais (mais pas besoin de prototype pour le faire).

    • Tu as ton formulaire tel quel
    • Tu rajoutes une iframe avec un display:none
    • Tu définis le target de ton formulaire pour qu'il s'execute dans l'iframe
    • Enfin du côté serveur tu testes pour voir si le transfert a bien eu lieu et si c'est le cas tu renvoies l'url sur le serveur puis tu modifies le src de ton image. (tout ça en utilisant AJAX)
    Désolé j'ai pas de code sous la main (ou plutôt je ne l'ai plus)

  9. #9
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 314
    Par défaut
    merci Kerod, la méthode a bien fonctionné

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [1.x] Test fonctionnel avec uplaod de fichier
    Par nelk75 dans le forum Symfony
    Réponses: 1
    Dernier message: 09/02/2010, 22h39
  2. Uplaod Fichier via CGI --> PS Upload
    Par gerald@23juin.net dans le forum Web
    Réponses: 1
    Dernier message: 24/09/2009, 14h57
  3. fichier mappé en mémoire
    Par WinBernardo dans le forum Delphi
    Réponses: 7
    Dernier message: 01/12/2006, 09h38
  4. Lire 1 bit d'un fichier en C
    Par Anonymous dans le forum C
    Réponses: 3
    Dernier message: 23/05/2002, 18h31
  5. Fichier PDOXUSRS.NET
    Par yannick dans le forum Paradox
    Réponses: 5
    Dernier message: 05/04/2002, 09h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo