[ASP.NET] Listing d'un répertoire + upload de fichier.

Discussion dans 'Web, design' créé par THiBOo, 3 Janvier 2008.

Statut de la discussion:
Fermée.
  1. Offline
    THiBOo Elite
    Alors voilà, j'aimerais bien lister les images d'un répertoire et uploader des images dans un répertoire.
    J'ai en cherchant, trouvé un script sensé me faire ça, sauf que ... ça marche pas :D

    Code:
    			<% 
    			Set FSO=Server.createObject("Scripting.FileSystemObject") 
    			
    			Set Repertoire = FSO.GetFolder(Server.MapPath("/img"))
    			for each Curseur In Repertoire.Files
    				if ucase(right(curseur.name,3)) = "jpg" then %>
    				<img src="./<%= Curseur.name%>" >
    				<%  end if 
    			next %>  
    
    Voici ce code inséré dans ma page aspx :

    Code:
    <%@ Page Language="C#" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    
    
    <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
    
    <head runat="server">
    	<title>:::::.....:::::.....:::::.....:::::</title>
    	<link rel="stylesheet" type="text/css" href="css/layout.css" />
    	<script type="text/javascript" src="js/prototype.js"></script>
    	<script type="text/javascript" src="js/scriptaculous.js?load=effects"></script>
    	<script type="text/javascript" src="js/lightbox.js"></script>
    	<link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />
    	
    </head>
    
    <body>
    	<div id="body">
    		<h1><div></div></h1>
    			<ul id="topnav">
    				<li><a href="Default.aspx">Accueil</a></li>
    				<li><a href="Wallpaper.aspx">Wallpaper</a></li>
    				<li><a href="Contact.aspx">Contact</a></li>
    			</ul>
    		<div id="content">
    			<% 
    			Set FSO=Server.createObject("Scripting.FileSystemObject") 
    			
    			Set Repertoire = FSO.GetFolder(Server.MapPath("/img"))
    			for each Curseur In Repertoire.Files
    				if ucase(right(curseur.name,3)) = "jpg" then %>
    				<img src="./<%= Curseur.name%>" >
    				<%  end if 
    			next %>  
    		</div>
    
            <asp:label id="Message" runat="server" ForeColor="#FFFFFF"/>
    		<hr class="clear" />
    		<object type="application/x-shockwave-flash" data="dewplayer.swf?son=sport1.mp3" width="200" height="20"> <param name="movie" value="dewplayer.swf?son=votre_son.mp3" /> </object>
    	</div>
    </body>
    
    </html>
    
    Et il me met ceci comme erreur lors de l'exécution :

    Quid ? o_O
    Alors que c'est sensé fonctionner "tel quel".
    THiBOo, 3 Janvier 2008
    #1
  2. Offline
    Bartdude Touriste
    Je fais plutôt du C#, mais j'ai fait du VBScript et le code a l'air bon... sauf :

    Code:
    Set FSO=Server.createObject("Scripting.FileSystemObjec  t")
    il y a un espace entre le "c" et le "t" de "SystemObject" , et c'est pas normal

    Y'a aussi un espace plus bas dans "mappath". Je sais pas si c'est une faute lors du copier-coller dans gamerz, ou quand t'as choppé ca sur le site d'origine, mais si t'as ca dans ton code je doute que ca marche...
    Bartdude, 3 Janvier 2008
    #2
  3. Offline
    null ose();
    Ca c'est GamerZ qui fait, tu peux le voir en faisant "Citer" son post ;)

    Essaye ça :

    Code:
    			<% 
    			Set FSO=Server.createObject("Scripting.FileSystemObjec  t");
    			
    			Set Repertoire = FSO.GetFolder(Server.MapP  ath("/img"));
    			for each Curseur In Repertoire.Files
    				if ucase(right(curseur.name,  3)) = "jpg" then %>
    				<img src="./<%= Curseur.name%>" >
    				<%  end if 
    			next %> 
    Il dit qu'il ne trouve pas le token ";" qui devrait se trouver là. Hors dans beaucoup de langage, on termine les instructions par ";". En plus, je viens d'aller voir sur Wikipedia et là il y a bien les ";" :)
    null, 3 Janvier 2008
    #3
  4. Offline
    Bartdude Touriste
    Oui merci mais je sais lire le message d'erreur, le truc c'est qu'en VB.NET, il n'y a pas de ";" à la fin des instructions justement (va plutôt voir la définition de VB.NET que celle de C# dans Wikipedia), donc le message d'erreur est plutôt strange, donc je cherchais un truc bizarre ailleurs.
    Bartdude, 3 Janvier 2008
    #4
  5. Offline
    THiBOo Elite
    Mmmmh le truc c'est que j'ai choppé la chose sur un forum et le mec disait que cela fonctionnait parfaitement, maintenant, c'est effectivement du VBScript, et je préférerais de loin du C#

    Bartude, aurais-tu une idée de comment faire cela en C# ?
    En gros, j'aimerais lister les images ".jpg" d'un répertoire donné (que je préciserais moi-même donc) et de les afficher sur la page avec un format particulier (bon là c'est bêtement de l'html aucun souci pr ça).
    Pour ensuite permettre à l'utilisateur d'uploader ses propres jpg dans un répertoire. (j'ai trouvé des scripts tt fait pr ça)

    Je préférerais de très loin un truc en C# en fait :D
    THiBOo, 3 Janvier 2008
    #5
  6. Offline
    Bartdude Touriste
    Là comme ca, j'ai pas un code tout fait à moi, mais ca devrait t'aider :

    http://www.csharpfriends.com/Articles/getArticle.aspx?articleID=356

    http://support.microsoft.com/kb/323246


    Mais sinon, en cherchant 30 secondes sur google avec "upload file c#" ou "file listing c#" , on trouve pas mal de ressources, tu devrais y trouver ton bonheur. Ca ne sera à priori pas plus compliqué en C# qu'en VB.NET (et pas VBScript, ca c t avant le .NET)
    Bartdude, 3 Janvier 2008
    #6
  7. Offline
    THiBOo Elite
    Disons que mes connaissances en ASP.NET et en C# sont somme toute assez limitée et n'avancerons pas bcp plus (je préfère de loin le jsp et le php). C'est uniquement pr faire un site pr un exam, mais je vais regarder ça, merci :)

    (j'avais tapper "listing image en asp.net" d'où le vb qui en fait ne m'intéresse pas du tout)

    Merci pour les liens, cela devrait faire mon bonheur :)
    THiBOo, 3 Janvier 2008
    #7
  8. Offline
    k o D Belge !
    Saloperie d'examen d'ASP.net à Paul Lambin... (Me suis bien cassé la tête aussi pour mon projet :p )
    k o D, 3 Janvier 2008
    #8
  9. Offline
    THiBOo Elite
    J'avance un peu, j'ai réussi à faire en sorte que cela fonctionne en précisant comme path "c:\\img" et en copiant mon rep img sur c:
    Sauf que je ne veux pas ça ! Je veux qu'il aille le chercher "là où il est" où plutôt là où est ma page aspx ... Donc p-e que je dois insérer cette fonction en tant que script dans ma page aspx ? Mais cela me semble étrange.

    Code:
    	 void Page_Load(object s, EventArgs e)
    	 {
    		 DirectoryInfo di = new DirectoryInfo("\\img");
    		 FileInfo[] rgFiles = di.GetFiles("*.jpg");
    		 foreach(FileInfo fi in rgFiles)
    		 {
    			Response.Write("<br><a href=" + fi.Name + ">" + fi.Name + "</a>");       
    		 }
    	 }
    
    Une idée ?

    En fait, en y réfléchissant, je suis obligé de mettre ce code en script dans ma page, pourquoi donc ? Car je veux positionner les images que je liste ...

    J'ai donc intégré ce code dans ma page aspx :

    Code:
    <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Wallpaper.aspx.cs" Inherits="_Default" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    
    
    <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
    
    <head runat="server">
    	<title>:::::.....:::::.....:::::.....:::::</title>
    	<link rel="stylesheet" type="text/css" href="css/layout.css" />
    	<script type="text/javascript" src="js/prototype.js"></script>
    	<script type="text/javascript" src="js/scriptaculous.js?load=effects"></script>
    	<script type="text/javascript" src="js/lightbox.js"></script>
    	<link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />
    	
    </head>
    
    <body>
    	<div id="body">
    		<h1><div></div></h1>
    			<ul id="topnav">
    				<li><a href="Default.aspx">Accueil</a></li>
    				<li><a href="Wallpaper.aspx">Wallpaper</a></li>
    				<li><a href="Contact.aspx">Contact</a></li>
    			</ul>
    		<div id="content">
    			<% 
    				 DirectoryInfo di = new DirectoryInfo("\\img");
    				 FileInfo[] rgFiles = di.GetFiles("*.jpg");
    				 foreach(FileInfo fi in rgFiles)
    				 {
    					Response.Write("<br><a href=" + fi.Name + ">" + fi.Name + "</a>");       
    				 }
    			%>
    		</div>
    
            <asp:label id="Message" runat="server" ForeColor="#FFFFFF"/>
    		<hr class="clear" />
    		<object type="application/x-shockwave-flash" data="dewplayer.swf?son=sport1.mp3" width="200" height="20"> <param name="movie" value="dewplayer.swf?son=votre_son.mp3" /> </object>
    	</div>
    </body>
    
    </html>
    
    Ma page C# ne fait plus qu'appeler les using nécessaire, seulement est-ce correct ? J'ai l'impression qu'il ne va pas chercher correctement les lib nécessaire ... Quid ?

    Code:
    using System;
    using System.IO;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    
    public partial class _Default : System.Web.UI.Page
    {
    
    	 void Page_Load(object s, EventArgs e)
    	 {
    
    	 }
    }
    
    
    THiBOo, 4 Janvier 2008
    #9
Statut de la discussion:
Fermée.