Pour les offres Hébergement Windows

Vous pouvez charger des fichiers via votre navigateur grâce à ASP. Les exemples de scripts suivants vous montrent comment faire :

ASP

MaxLength = x spécifie la taille maximale du fichier en octets.

<head>
        <title>Charger des fichiers via ASP</title>
</head>
<body bgcolor="white">
<%=Font%>
<%
' --- ASP FileUpload Modul GetFILE (C) 1999 by Stefan Falz

' --- Activer la résolution des erreurs
' --- On Error Resume Next
' --- Affecter la source d erreur à éditer en cas d erreur
        Err.Source = "GetFILE HTTP-Upload"
' --- Constante pour le titre de l erreur
Const ErrHeader = "<b>Erreur</b><br><br>"

' --- Déclarer un tableau
Dim ErrArray(4)
        ErrArray(0) = "10900 - Votre fichier est trop gros."
        ErrArray(1) = "10901 - Erreur inconnue.<br>"
        ErrArray(2) = "10902 - Aucun fichier n'a été chargé ou bien le chargement a échoué.<br>"
        ErrArray(3) = "10903 - Aucun fichier texte n a été envoyé.<br>"

' -- Appel de la Subroutine GetFILE
        Call GetFILE()


Private Sub GetFile()

' --- Le stream HTTP est lu dans cette Subroutine


' --- Déclaration des variables
Dim FileText
    FileText = Request.BinaryRead(Request.TotalBytes)
Dim FileTextByte
    FileTextByte = ""
Dim FileTextNew
    FileTextNew = ""
Dim FilePosFirst
    FilePosFirst = 0
Dim FilePosLast
    FilePosLast = 0
Dim FileType
    FileType = ""
Dim strRevText
    strRevText = ""
Dim strFileName
    strFileName = ""
Dim strFileNameOnly
    strFileName = ""
Dim posFileName
    posFileName = 0
Dim rghFile
    rghFileName = ""
Dim lenFileTextByte
    lenFileTextByte = 0

' --- Préciser la taille maximale du fichier + environ 500 octets pour les informations sur le fichier
Dim maxLength
    maxLength = 25500

' --- Interroger la taille du stream envoyé
        If Request.TotalBytes > maxLength Then
                Call Error_Handler(10900)
                Exit Sub
        End if

' --- Rechercher HexCode 0D 0A 0D 0A (Début du fichier au sein du stream HTTP)
        FilePosFirst = InStrB(FileText, (ChrB(13) & ChrB(10) & ChrB(13) & ChrB(10)))

' --- Rechercher HexCode 0D 0A 2D 2D (Fin du fichier au sein du stream HTTP)
        FilePosLast = InStrB(FileText, (ChrB(13) & ChrB(10) & ChrB(45) & ChrB(45)))

' --- Rechercher HexCode 2D 0A 0D au sein du stream HTTP, puisqu il peut y avoir plusieurs indicateurs de fin de fichier.
        strRevText = StrReverse(FileText)
        FilePosLast = InStrB(strRevText, (ChrB(45) & ChrB(10)) & ChrB(13))
        FilePosLast = LenB(FileText) - FilePosLast

' --- Abandonner si la taille du fichier est de 0 octet
        If FilePosFirst = 0 Or FilePosLast = 0 Or FilePosLast - FilePosFirst < 5 Then
                Call Error_Handler(10902)
                Exit Sub
        End If
' --- Annuler si "Content-Disposition" est non spécifié
         If InStrB(FileText, ChrB(67) & ChrB(111) &  ChrB(110) & ChrB(116) & ChrB(101) & ChrB(110)  & ChrB(116) & ChrB(45) & ChrB(84) &  ChrB(121) & ChrB(112) & ChrB(101) & ChrB(58)  & ChrB(32) & ChrB(116) & ChrB(101) &  ChrB(120) & ChrB(116) & ChrB(47)) = 0 Then
                Call Error_Handler(10903)
                Exit Sub
        End if
' --- Abandonner si c'est une erreur qui n'est pas l une des erreurs énumérées ci-dessus s est produite
        If Err.Number <> 0 Then
                Call Error_Handler(10901)
                Exit Sub
        End if
' --- Consulter le nom du fichier et le chemin d acces au sein du stream HTTP
         posFileName = InStrB(FileText, ChrB(102) & ChrB(105)  & ChrB(108) & ChrB(101) & ChrB(110) &  ChrB(97) & ChrB(109) & ChrB(101) & ChrB(61)  & ChrB(34)) + 9

        rghFileText = RightB(FileText, LenB(FileText) - posFileName)

        strFileName = LeftB(rghFileText, InStrB(rghFileText, ChrB(34)) - 1)
                Response.Write "<strong>Nom du fichier et chemin d acces :</strong>"
                        Response.BinaryWrite strFileName
                Response.Write "<br>"

' --- Consulter le nom du fichier sans le chemin d acces au sein du stream HTTP
        posLastSlash = InStrB(StrReverse(strFileName), ChrB(92))

        strFileNameOnly = MidB(strFileName, LenB(strFileName) - posLastSlash, posLastSlash + 1)

                Response.Write "<strong>Nom du fichier sans le chemin d acces : </strong>"
                        Response.BinaryWrite strFileNameOnly
                Response.Write "<br>"
' --- Abandonner si une erreur s est produite
        If Err <> 0 Then
                Call Error_Handler(10901)
                Exit Sub
        End if

' --- Ecrire le contenu du fichier dans le ByteArray
        FileTextByte = MidB(FileText, (FilePosFirst + 4), (FilePosLast - (FilePosFirst + 4)))

' --- Déterminer la taille du fichier en lisant la longueur du contenu du fichier déterminé
        lenFileTextByte = LenB(FileTextByte)

' --- Conversion du contenu du fichier (flux binaire) en caractères ascii
        For i = 1 To lenFileTextByte
                FileTextNew = FileTextNew & Chr(AscB(MidB(FileTextByte, i, 1)))
        Next

' --- Ecrire le contenu du fichier déterminé dans un fichier.
        Set objFileSys = Server.CreateObject("Scripting.FileSystemObject")
                 Set File =  objFileSys.CreateTextFile(Server.MapPath("./") & "\" &  Session.SessionID & ".tmp", True, False)
                        File.WriteLine CStr(FileTextNew)
                        File.Close
                Set File = Nothing
        Set objFileSys = Nothing

' --- Sortie de la taille du fichier en octets
         Response.Write "<strong>taille du fichier:  </strong>" & lenFileTextByte & "  Byte.<br><br>"

' --- Convertir le contenu d un fichier parce que les pages HTML ne s affichent pas correctement
        FileTextNew = Replace(FileTextNew, "<", "&lt;")
        FileTextNew = Replace(FileTextNew, ">", "&gt;")
        FileTextNew = Replace(FileTextNew, VbCrLf, "<br>" & VbCrLf)
        FileTextNew = Replace(FileTextNew, Chr(9), "&nbsp;&nbsp;&nbsp;&nbsp;")

' --- Sortie du contenu du fichier
        Response.Write FileTextNew
End Sub

Private Sub Error_Handler(intErrNumber)
' --- Détermination du code d erreur transmis et de l édition à l écran
        Select Case intErrNumber
                Case 10900: Response.Write ErrHeader & ErrArray(0)
                Case 10901: Response.Write ErrHeader & ErrArray(1)
                Case 10902: Response.Write ErrHeader & ErrArray(2)
                Case 10903: Response.Write ErrHeader & ErrArray(3)
                Case Else: Response.Write ErrHeader & Err.Description
        End Select
        Exit Sub
End Sub
%>
</body>
</html>

Un simple formulaire HTML sert ici d'interface utilisateur.

<html>
<head>
<title>Charger des fichiers via ASP</title>
</head>

<body>

<form method="POST" action="upload.asp" enctype="multipart/form-data" target="_new">
<input type="file" name="File" size="50"><br>
<input type="submit" value="DATEIUPLOAD STARTEN" name="Submit">
</form>
</body>
</html>

ASP.NET

Avec ASP.NET, le script de chargement peut être réalisé comme suit :

<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

Sub UploadButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)

' Specify the path on the server to
' save the uploaded file to.
Dim savePath As String = "e:\Kunden\Homepages\11\d12345678\www\UploadTest"

' Before attempting to perform operations
' on the file, verify that the FileUpload
' control contains a file.
If (FileUpload1.HasFile) Then
' Get the name of the file to upload.
Dim fileName As String = FileUpload1.FileName

' Append the name of the file to upload to the path.
savePath += fileName

' Call the SaveAs method to save the
' uploaded file to the specified path.
' This example does not perform all
' the necessary error checking.
' If a file with the same name
' already exists in the specified path,
' the uploaded file overwrites it.
FileUpload1.SaveAs(savePath)

' Notify the user of the name the file
' was saved under.
UploadStatusLabel.Text = "Your file was saved as " & fileName

Else
' Notify the user that a file was not uploaded.
UploadStatusLabel.Text = "You did not specify a file to upload."
End If

End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>FileUpload Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h4>File to upload:</h4>

<asp:FileUpload id="FileUpload1"
runat="server">
</asp:FileUpload>

<br /><br />

<asp:Button id="UploadButton"
Text="Upload file"
OnClick="UploadButton_Click"
runat="server">
</asp:Button>

<hr />

<asp:Label id="UploadStatusLabel"
runat="server">
</asp:Label>
</div>
</form>
</body>
</html>

Remarque : Dans la ligne suivante, vous devez encore saisir le chemin d'accès à votre site Internet :

Dim savePath As String = "e:\Kunden\Homepages\11\d12345678\www\UploadTest"