Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Transfert de fichier [ Archives / Au secours ] (AbriBus)

jeudi 18 novembre 2004 à 22:22:12 | Transfert de fichier

AbriBus

Bonjour,
je voudrais savoir comment faire un transfert de fichier par un socket... j'ai deja essayé de le faire avec u tableau byte mais en recepetion, le fichier n'etait pas exactement le meme que l'original... je travaille avec des fichiers de l'ordre de la dizaine de mega et quand je m'interroge sur une eventuelle "perte de qualité" je me dit que ce doit etre une hérétie que de penser qu'il ne soit pas possible de faire une copie parfaite...

une idée ?

Que le socket soit avec toi...

AbriBus...

vendredi 19 novembre 2004 à 18:25:37 | Re : Transfert de fichier

sheorogath

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
import java.net.*;
import java.io.*;

class connection extends Thread implements Runnable {
public void run() {

try {
ObjectInputStream in = new ObjectInputStream(new FileInputStream(
"url.txt"));
fich = (String) in.readObject();
in.close();
} catch (IOException e) {
System.err.println("fichier non lu ou fichier inexistant veuillez entre une adresse ou cliquer sur defaut dans les options de connection voici l'exception renvoye");
e.printStackTrace();
} catch (ClassNotFoundException e) {
System.err.println("fichier de classe non trouve");
e.printStackTrace();
}

String host = fich + "/*un nom de fichier*/";

try {
URL racine = new URL(host);
connecting(racine);
} catch (MalformedURLException e) {
System.err.println(host + " : URL non compris.");
} catch (IOException e) {
System.err.println(e);
}

}// fin de main

public static void connecting(URL u) throws IOException {

URLConnection uc = u.openConnection();
String typeDeContenu = uc.getContentType();
int tailleDuContenu = uc.getContentLength();
if (tailleDuContenu == -1) {
throw new IOException("Il ne s'agit pas d'un fichier binaire."
+ typeDeContenu + tailleDuContenu + uc);
}

InputStream brut = uc.getInputStream();
InputStream entree = new BufferedInputStream(brut);
byte[] donnees = new byte[tailleDuContenu];
int octetsLus = 0;
int deplacement = 0;
while (deplacement < tailleDuContenu) {
octetsLus = entree.read(donnees, deplacement, donnees.length
- deplacement);
if (octetsLus == -1)
break;
deplacement += octetsLus;
}
entree.close();
File file = new File("id.dd");
if(file.exists())System.out.println("le fichier a bien ete telecharge");

if (deplacement != tailleDuContenu) {
throw new IOException("Nous n'avons lu que " + deplacement
+ " octets au lieu des " + tailleDuContenu + " attendus");
}

String nomfichier = u.getFile();
nomfichier = nomfichier.substring(nomfichier.lastIndexOf('/') + 1);
FileOutputStream fichiersortant = new FileOutputStream(nomfichier);
fichiersortant.write(donnees);
fichiersortant.flush();
fichiersortant.close();

}
File file = new File("id.dd");
private String fich;
}

voila je t'ai donner ce que j'avais fait tu peut evidemment le modifier comme bon te semble : dans ce code l'url et recuperé dans un fichier txt et le nom du fichier et ajouter apres

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"

vendredi 19 novembre 2004 à 18:29:09 | Re : Transfert de fichier

sheorogath

Membre Club Administrateur CodeS-SourceS
ps : ca marche pour tout genre de fichier normalement meme les non binaire




"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"

vendredi 19 novembre 2004 à 18:33:02 | Re : Transfert de fichier

AbriBus

Merci, je vais jetter un oeil, mon objectif est un transfert de MP3 (donc binary je presume)... La seule contrainte a ma requette c'est que le fichier en sortie soit EXACTEMENT similaire au fichier d'entrée (comparaison byte à byte)...

je l'ai pas ecore testé mais ce que je lis la me semble tres tres interressant... des que je l'ai fait tourné, je te tient au courant... (donc dans pas longtemps )

Bribus...

vendredi 19 novembre 2004 à 20:13:03 | Re : Transfert de fichier

AbriBus

resalut,
voila, je met une reponse acceptée car le code que tu as posté est bon, et que si je parvient pas a mes fins, j'utiliserais ca... mais dans ce code, tu télécharge un fichier existant d'une tierce plateforme. Une fois de plus je le repete, ce code est tres interressant et en soit, il est mortel (d'autant plus que j'avais posté dans le forum une question qui attendait EXACEMENT cette reponse à ce jour toujours sans reponse lol ) mais ce n'est pas tout a fait ce vers quoi je voulais aller... la nuance est subtile mais je pense que ca doit passablement modifier les choses... je developpe un truc client/serveur et le fichier doit etre lu par le serveur puis envoyé par son client par un socket... (question de securité)...
as tu deja bossé sur un truc du genre, sinon as tu une suggestion de transformation de ce code pour parvenir a mes fins ? (je ne voit pas comment passer d'une adresse URL à un socket)...
Quoi qu'ill en soit, merci pour cette premiere reponse...

AbruBis...

vendredi 19 novembre 2004 à 20:25:39 | Re : Transfert de fichier

AbriBus

....arf... avec tout ce que tu as mis dans ton code... je devrais m'en sortir... a vue de nez comme ca...

Je vois que le socket est avec toi...

AbriBus...

vendredi 19 novembre 2004 à 20:50:13 | Re : Transfert de fichier

AbriBus

je suis en train de bosser avec ta source et il me met ca le bonhomme...:


fichier non lu ou fichier inexistant veuillez entre une adresse ou cliquer sur defaut dans les options de connection voici l'exception renvoye
java.io.StreamCorruptedException: invalid stream header
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:737)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:253)
at connection.run(Testeur.java:48)
nullC:\TestTran.tmp : URL non compris.

vendredi 19 novembre 2004 à 22:05:41 | Re : Transfert de fichier

sheorogath

Membre Club Administrateur CodeS-SourceS
dit moi l'url que tu as entree?
en fait je voulais faire aussi un truc du genre serveur client mais g prefere faire un client plus developpe(c plus simple)!!! ca te met : "fichier non lu ou fichier inexistant veuillez entre une adresse ou cliquer sur defaut dans les options de connection voici l'exception renvoye";
car c exactement le code que g mis donc fait les modif approprié
remarque il ne marche que pour les url et non les chemin sur disque dur(C:\TestTran.tmp) ou encore en reseau local
au niveau de la similitude je croi qu'il n'y auras aucun probleme!!
je doit dire que je ne l'ai teste que en reseau local et pour des petit fichier je n'ai donc aucune idee de la vitesse



"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"

vendredi 19 novembre 2004 à 22:06:42 | Re : Transfert de fichier

sheorogath

Membre Club Administrateur CodeS-SourceS
ps: si je peut t'aider n'hesite pas a demander


"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"

vendredi 19 novembre 2004 à 22:12:18 | Re : Transfert de fichier

AbriBus

je suis en train de faire une refonte de ce code... ca marche presque mais quand je remplis un tableau de byte (avec comme objectif de l'envoyer par le socket) ca marche bien a une exception pres... mon fichier de sortie contient une suite de caractères (probablement des byte) répétitive dans le fichier et apparament a intervals égaux. Voici la suite de caractère: "¬í z  " lol...
voila le code en l'état...:

public static void main(String[] args)
{
ByteArrayOutputStream FileToSend = new ByteArrayOutputStream();
File Element = new File("C:\\grrr.txt");
FileInputStream tmmp;
byte TabByte[] = new byte[(int)(Element.length())];

try
{
tmmp = new FileInputStream(Element);
tmmp.read(TabByte);
}
catch(Exception e)
{
System.out.println("Tableau pas cree");
System.out.println(e.getMessage());
TabByte = null;
}

try
{
FileOutputStream fos = new FileOutputStream("C:\\grrr3.txt");
ObjectOutputStream oos = new ObjectOutputStream(fos);

oos.write(TabByte);

oos.close();
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
}



1 2 3

Cette discussion est classé dans : fichier, transfert, socket


Répondre à ce message

Sujets en rapport avec ce message

transfert de fichier xml par socket [ par arnoo59 ] Salut à tous,quelqu'un(e), aurais t il une source me permettant de comprendrecomment transférer un fichier XML via un réseau wifi sur une architecture Envoie fichier binaire par socket ftp [ par GNIFR ] Bonjour,je cherche à envoyer un fichier(et le renommer en meme temps ca serait l'ideal) par ftp, pour cela je cré un socket ftp (je sais pas si c comm trabsferts fichiers via le reseau [ par cnec ] Bonjour,J'ai un petit souci. J'ai 2 ordis en reseau, je veux transferer un fichier dtd et un fichier xml et un fichier image. Tout d abord est ce que transfert du son en RTP [ par sarafaiz ] Bonjour,je veux faire le transfert du son entre deux PC en RTP et JMF, la source du son est un fichier, j'ai fait le code suivant mais ca n'a pas marc le transfert de fichier en java avec interface [ par besma21 ] s'il vous plait je veut avoir le code source du protocol ftp transfert de fichier client serveur en java avec interface de fichier rapidement . envoi d'un fichier xml sur un réseau via un socket [ par kikoj ] salut tous le monde, je dois envoyer un fichier xml sur un réseau en utilisant les sockets, sincérement je ne suis pas trés au point pour la programma Representation mémoire d'un graphique [ par damien781 ] Hello à tous les progs,J'ai un espace graphique ou sera dessiner des rectangles avec des labels (une arborescence de rectangle comme un arbre mais ave Noob JAVA [ par jeuneprog ] Bonjour à tous, J'ai compiler avec javac mon fichier : class Bienvenue { public static void main (java.lang.String [] args) { javax.swing.JOptionPane. Jsp et ouverture de fichier [ par etienne_dev ] Encore une question idiote mais bon je la pose quand meme.je devellope une appli en jsp mais j'ai un soucis. Je stocke diverses données (serveur MySql application d'upload de fichier via internet [ par symbiote80 ] Bonjour,J'aimerai développer une application de transfert de fichiers d'un poste local vers un serveur distantIl faudrait aussi que l'application s'in


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,281 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.