Traitement d'un fichier en local
J'ai un problème de lecture un fichier en locale depuis une page jsp executer côté serveur:
le code de la page JSP pour récupérer le fichier depuis le disque dur du client:
Code:
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
| <script type="text/javascript">
function affichePath(){
var fich;
fich=document.getElementById('fichier').value;
if (fich=="")
alert('veuillez choisir un fichier');
else{
document.cloture.action="affichepath.jsp";
document.cloture.submit();}
}
</script>
<body>
<table width="100%" border="0">
<tr>
<tr>
<jsp:include page="header.jsp"/>
</tr>
</tr>
<tr>
<td width="100%" height="500px" align="left" background="white" >
<form method="post" enctype="multipart/form-data" name="cloture">
<table class="tablerel">
<tr class= "jaunef">
<td width="100" >fichier : </td>
<td width="500"><input type="file" id="fichier" name="fichier" ></td>
</tr>
<tr>
<td><input class="btn" type="button" onclick="affichePath();" value="Cloturer"></td>
<td> </td>
</tr>
<tr>
<td style="white-space:nowrap;">${sessionScope.total}</td><td>${sessionScope.tot}</td></tr>
<tr>
<tr>
<td style="white-space:nowrap;">${sessionScope.messageclot}</td><td>${sessionScope.recclot}</td></tr>
<tr>
<td style="white-space:nowrap;">${sessionScope.messagenonclot}</td><td>${sessionScope.nonclot}</td>
<td> </td>
</tr>
</table>
</form>
<table> |
le code de la page JSP pour le traitement:
Code:
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
| <%
java.sql.Date sqlDate = new java.sql.Date(new java.util.Date().getTime());
FileChannel in1 = null; // canal d'entrée
FileChannel in2 = null; // canal d'entrée
FileChannel out1 = null; // canal de sortie
FileChannel out2 = null; // canal de sortie
String fichiersor="c:/noncloturer"+sqlDate+".txt";
String fichierclot="c:/cloturer"+sqlDate+".txt";
String fichierenter=null;
PreparedStatement ps = null;
PreparedStatement psi = null;
PreparedStatement psu=null;
String path=null;
int i=0;
int j=0;
int k=0;
String nom =null;
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/file");
Connection oraConn = ds.getConnection();
oraConn.setAutoCommit(false);
FileWriter fwr = new FileWriter (fichierclot);
BufferedWriter bwr = new BufferedWriter (fwr);
PrintWriter fichierClot = new PrintWriter (bwr);
FileWriter fw = new FileWriter (fichiersor);
BufferedWriter bw = new BufferedWriter (fw);
PrintWriter fichierSor = new PrintWriter (bw);
// Check that we have a file upload request
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
// Create a factory for disk-based file items
FileItemFactory factory = new DiskFileItemFactory();
// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload(factory);
// Parse the request
List /* FileItem */ items = upload.parseRequest(request);
//out.print(request);
// Process the uploaded items
Iterator iter = items.iterator();
//out.print(iter);
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
//out.print(item);
File fullFile = new File(item.getName());
//out.print(fullFile);
nom=fullFile.getName();
path=fullFile.getAbsolutePath();
String ligne;
String etat=null;
ResultSet rs = null;
fichierenter="c:/"+nom;
Reader r = new BufferedReader(new FileReader(fichierenter));
InputStream ips=new FileInputStream(fichierenter);
InputStreamReader ipsr=new InputStreamReader(ips);
BufferedReader br=new BufferedReader(ipsr);
fichierClot.println ("Les cloturer : ");
fichierSor.println ("Les non cloturer : ");
while ((ligne=br.readLine())!=null){
// traitement
}
}
bwr.close();
bw.close();
%> |
* le problème c'est que je n'arrive pas à récupérer le fichier depuis le disque local du client,il cherche le fichier sur le serveur du tomcat