Bonjour à tous j'aimerai savoir comment je peux copier des fichiers et les coller dans un serveur distant en java. Merci d'avance
Bonjour à tous j'aimerai savoir comment je peux copier des fichiers et les coller dans un serveur distant en java. Merci d'avance
La force d'un programmeur ne réside pas dans le fait qu'il écrive des codes puissants mais dans sa capacité à les maintenir!!!
Quel protocole le serveur distant? Il n'y a pas de "copier coller" sur des serveur distant par défaut, si tu veux envoyer un fichier vers un serveur distant, il faudra utiliser un protocole adapté à ce serveur.
Pour être plus précis, on se fiche que ce soit du copier/coller ou autre.
Quand on sait envoyer un fichier d'un point A à un point B, et qu'on sait faire un copier/coller, alors on sait copier/coller d'un point A à un point B.
Il faut donc apprendre deux choses :
- Comment faire du copier/coller (je ne sais pas où trouver ça, j'ai appris avec les tutoriaux d'Oracle.)
- Comment envoyer un fichier sur un serveur. Et pour ça, la première étape est choisir un protocole. Genre FTP ou HTTP.
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Peut-être une solution.
Voici quelques lignes de code qui copient un fichier nommé toto.java, depuis le disque C de mon ordinateur Windows, dans le dossier Users\thierry, vers un autre ordinateur sous Linux qui partage une ressource sous le nom "Partage1". N'ayant pas de DNS sur mon réseau personnel, l'adresse IP de cette machine est 192.168.0.6. Donc, ce code copie C:\Users\thierry\toto.java vers \\192.168.0.6\Partage1\toto2.java :
Dans le cas des version Java antérieur à Java7 :
Dans le cas de Java7 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 package javaapplication18; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; /** * * @author thierry */ public class JavaApplication18 { static final String source = "C:\\Users\\thierry\\toto.java"; static final String cible = "\\\\192.168.0.6\\Partage1\\toto2.java"; /** * @param args the command line arguments */ public static void main(String[] args) throws Exception { File fichierACopier = new File(source); File fichierCible = new File(cible); byte[] donnees = new byte[1024]; FileInputStream fluxIn = new FileInputStream(fichierACopier); FileOutputStream fluxOut = new FileOutputStream(fichierCible); while (fluxIn.available() > 0) { fluxIn.read(donnees); fluxOut.write(donnees); } fluxOut.flush(); fluxIn.close(); fluxOut.close(); } }
ATTENTION !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 package javaapplication18; import java.io.File; import java.nio.file.Files; import java.nio.file.StandardCopyOption; /** * * @author thierry */ public class JavaApplication18 { static final String source = "C:\\Users\\thierry\\toto.java"; static final String cible = "\\\\192.168.0.6\\Partage1\\toto2.java"; /** * @param args the command line arguments */ public static void main(String[] args) throws Exception { File fichierACopier = new File(source); File fichierCible = new File(cible); Files.copy(fichierACopier.toPath(), fichierCible.toPath(), StandardCopyOption.REPLACE_EXISTING); } }
Cette solution n'est viable que si un tel partage existe sur le réseau, ou qu'il soit possible de le créer. En fait, cela correspond plus à une solution perso.
Si cette opération doit se faire sur un vrai réseau professionnel, il vous faudra suivre les conseils de Tchize et thelvin, et vous employer à manipuler FTP en vous adressant à un serveur FTP.
Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !
Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
Tout sur les réseaux : https://reseau.developpez.com/cours/
Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
Tout sur le matériel : https://hardware.developpez.com/cours/
Slt
Possible avec une application client-server, les deux class Socket et ServerSocket (protocole TCP) te serons utiles.
Machine sur la quelle se fait le copier et le coller :
* Envoi chemin du fichier a recevoir (au moment du coller)
* Réception du fichier
Machine qui stocke le fichier :
* Réception chemin fichier
* Envoi fichier
Bon courage, Moh
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager