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

Statut
N'est pas ouverte pour d'autres réponses.

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 :

Erreur de compilation
Description : Une erreur s'est produite lors de la compilation d'une ressource requise pour répondre à cette demande. Veuillez consulter ci-dessous les détails relatifs à l'erreur en question, puis modifier votre code source de manière appropriée.

Message d'erreur du compilateur: CS1002: ; attendu

Erreur source:

Ligne 25 : <div id="content">
Ligne 26 : <%
Ligne 27 : Set FSO=Server.createObject("Scripting.FileSystemObject")
Ligne 28 :
Ligne 29 : Set Repertoire = FSO.GetFolder(Server.MapPath("/img"))


Fichier source: c:\Documents and Settings\Admin\Mes documents\IPL\3eme\ASP\Exam\Wallpaper.aspx Ligne: 27
Quid ? o_O
Alors que c'est sensé fonctionner "tel quel".
 

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...
 

null

ose();
Bartdude a dit:
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 ";" :)
 

Bartdude

Touriste
null a dit:
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 ";" :)
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.
 
1er
OP
THiBOo

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
 

Bartdude

Touriste
THiBOo a dit:
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
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)
 
1er
OP
THiBOo

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 :)
 

k o D

Elite
Saloperie d'examen d'ASP.net à Paul Lambin... (Me suis bien cassé la tête aussi pour mon projet :p )
 
1er
OP
THiBOo

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)
	 {

	 }
}
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut