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 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225
|
<!--#Include File="../Include/connexion.Inc"-->
<!--#Include File="../Include/authentification.Inc"-->
<!--#Include File="../Include/aspupload.asp"-->
<!--#Include File="../Include/FonctionsGenerales.inc"-->
<%
' procédure qui efface un fichier en fonction de son chemin
Sub effacerFichier(path, fichierDejaExistant)
if not fichierDejaExistant then
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
FSO.DeleteFile(path)
set FSO = Nothing
end if
End sub
SET ObjSys = Server.CreateObject("Scripting.FileSystemObject")
'Récupération du répertoire courant
SNomRep = Server.MapPath(".")
'Vérification de la présence du répertoire de stockage, s'il n'existe pas on le créé
SNomRep = SNomRep & "\Modeles"
If not ObjSys.FolderExists(SNomRep) Then ObjSys.CreateFolder(SNomRep)
Set ObjSys = nothing
Set Upload = New FreeASPUpload
Upload.Save(SNomRep)
' tableau contenant les extensions autorisées
tabExt = array ("doc","rtf","txt","odt")
For Each fileItem In Upload.Files
' booléen qui dit si la table doit être mise à jour (insertion ou modification)
MAJTable = false
' on récupère l'extension du fichier
extension = right(fileItem.FileName, Len(fileItem.FileName)-InstrRev(fileItem.FileName,"."))
i=0
' fichierDejaExistant contient un booléen disant s'il existait déjà un fichier du même nom avant l'upload. Ainsi en cas d'erreur ce fichier ne sera pas effacé
fichierDejaExistant = Upload.exist
' on regarde si l'extension convient
appartient = false
while i <= ubound(tabExt) and not appartient
if tabExt(i) = extension then appartient = true
i = i+1
wend
' c'est une extension de fichier authorisée
if appartient then
' on vérifie qu'un nom de fichier a bien été posté
if Upload.form("titre") <> "" then
titre = Upload.form("titre")
' on vérifie si ce titre est déjà présent ou non dans la table
reqTitre = "SELECT * FROM arrete WHERE arr_titre='" & Replace(titre,"'","''") & "'"
Set exReqTitre = conn.execute(reqTitre)
if exReqTitre.eof then
' on récupère le nom du fichier sans l'extension
nomFic = left(fileItem.FileName, InstrRev(fileItem.FileName,".")-1)
' on vérifie si le fichier doit être converti ou non en rtf
if extension <> "rtf" then
' il faut convertir le fichier
' création de l'objet shell
set wshell=Server.CreateObject("wscript.shell")
' création de la commande à exécuter
' si le fichier rtf existe déjà il sera écrasé
pathcmd = """C:\Program Files\OpenOffice.org 3\program\python.exe"" ""C:\Program Files\OpenOffice.org 3\program\DocumentConverter.py"" """ & SNomRep & "\" & fileItem.FileName & """ """ & SNomRep & "\" & nomFic & ".rtf"""
' exécution de la commande
runcmd = wshell.Run (pathcmd, SW_SHOWNORMAL, true)
Set wshell=nothing
' on vérifie si la conversion s'est bien passée
if runcmd=0 then
' conversion ok
MAJTable = true
message = "Le fichier " & fileItem.FileName & " a bien été chargé et converti en .rtf<br /><br />"
else
' problème lors de la conversion
message = "Erreur lors de la conversion<br /><br />"
end if
' on efface le fichier non rtf
effacerFichier SNomRep & "\" & fileItem.FileName, false
else
' le fichier était déjà un rtf
MAJTable = true
message = "Le fichier " & fileItem.FileName & " a bien été chargé<br /><br />"
end if
else
' le titre est déjà présent dans la table
message = "Erreur : titre déjà présent<br /><br />"
effacerFichier SNomRep & "\" & fileItem.FileName, fichierDejaExistant
end if
else
message = "Erreur : titre vide<br /><br />"
effacerFichier SNomRep & "\" & fileItem.FileName, fichierDejaExistant
end if
else
message = "Ce type de fichier n'est pas pris en charge<br /><br />"
effacerFichier SNomRep & "\" & fileItem.FileName, fichierDejaExistant
end if
Next
response.write "MAJ : " & MAJTable
response.write "<br />fde : " & fichierDejaExistant
' si tout s'est bien passé il faut mettre à jour la table
if MAJTable then
' si un fichier de même nom était déjà présent on met à jour ses infos
if fichierDejaExistant then
reqMAJ = "UPDATE arrete SET arr_titre='" & Replace(titre,"'","''") & "', "
reqMAJ = reqMAJ & "act_ref=" & Session("ActRef") & ", "
reqMAJ = reqMAJ & "dcreat=" & dbdate
reqMAJ = reqMAJ & " WHERE arr_nom_fichier='" & Replace(nomFic,"'","''") & "'"
else
' on insère le nom du fichier et son titre dans la table arrete
' cette table permet d'associer un fichier à un nom plus explicite
reqMAJ = "INSERT INTO arrete(arr_ref, act_ref, arr_nom_fichier, arr_titre, dcreat, ucreat) "
reqMAJ = reqMAJ & " VALUES ('" & RechercheReference("arrete") & "', " & Session("ActRef") & ", '" & Replace(nomFic,"'","''") & "', '" & Replace(titre,"'","''") & "', " & dbdate & ", '" & Replace(Session("NomEmp"), "'", "''") & "')"
end if
exeReqIns = conn.execute(reqMAJ)
end if
%>
<html>
<head>
<LINK REL="stylesheet" HREF="../Include/Style<%=Session("ActNumCss")%>.css">
<title>Placier</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="javascript">
function validationFormulaire() {
var fid = document.getElementById('attach1');
if (fid.value == '') {
alert('Il faut choisir un fichier à charger');
return;
}
var extension = fid.value.substring(fid.value.lastIndexOf('.')+1,fid.value.length);
if ( (extension != 'doc') && (extension != 'odt') && (extension != 'rtf') && (extension != 'txt') ) {
alert('Seuls les fichier .doc, .odt, .rtf et .txt sont authorisés');
return;
}
if (document.getElementById("titre").value == '') {
alert('Il faut choisir un titre pour votre fichier');
return;
}
document.forms[0].submit();
}
function changementNomFichier() {
if (document.getElementById("titre").value == '') {
var fid = document.getElementById('attach1');
//alert(fid.value);
var nomFichier = fid.value.substring(0,fid.value.lastIndexOf('.'));
document.getElementById("titre").value = nomFichier;
}
}
</script>
</head>
<body>
<div align="center">
<h3>Chargement d'un nouveau modèle de traité</h3>
<form action="Arretes_Upload.asp" method="post" enctype="multipart/form-data">
<input type="hidden" name="envoi" value="1" />
<table>
<tr>
<td><label for="attach1">Choix du fichier</label></td>
<td><input type="file" id="attach1" class="TextBox" name="attach1" size="30" onchange="javascript:changementNomFichier();" /></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td><label for="titre">Titre du fichier</label></td>
<td><input type="text" name="titre" id="titre" size="30" /></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td></td>
<td><a href="#" onclick="validationFormulaire();">Charger les données</a></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td></td>
<td><a href="Arretes_Upload.asp">Retour</a></td>
</tr>
</table>
</form>
<%=message %>
</div>
</body>
</html> |
Partager