Pages

Erreur 409 Transfert de fichier via webdav sujet

jeudi 27 mars 2014




Bonjour,

Je dois transferer un fichier via webdav sur 2 Pc en reseaux (win7).

Avec Windows en utilisant la commande "net use * htpp://etc...." ca marche il creer bien mon lecteur reseaux. Je peux modifier, transferer, c'est OK...
Avec mon logiciel je peux aussi supprimer ca amrche donc pas de probleme de connexion ou de droit d'acces.

Mais des que je transfert j'ai l'erreur 409 probleme de conflit que remonte.

Que faire ?

Merci

Johan


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

public HttpStatusCode MettreAJour(string Fichier, string Url, string sUserName, string sPassword)
{
HttpStatusCode iStatus;
string sStatus;

Byte[] Data = getFileBytes(Fichier);

string FileNameUrl = Url + "/" + Path.GetFileName(Fichier);

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(Url);
req.Method = "PUT";
req.ContentLength = Data.LongLength;

// s'authentifie
if (!String.IsNullOrEmpty(sUserName))
{
NetworkCredential networkCredential = new NetworkCredential(sUserName, sPassword);
req.Credentials = networkCredential;
}

Stream stream = req.GetRequestStream();
stream.Write(Data, 0, Data.Length);
stream.Flush();
stream.Close();

HttpWebResponse response = (HttpWebResponse)req.GetResponse();
iStatus = response.StatusCode;
sStatus = response.StatusDescription;

if (iStatus == HttpStatusCode.OK || iStatus == HttpStatusCode.Created)
Console.WriteLine(String.Format("PUT: OK Resultat = {0}: {1}", iStatus, sStatus));
else if (iStatus == HttpStatusCode.Unauthorized)
Console.WriteLine("PUT WEBDAV: Vous n'avez pas les permissions requis! Contactez l'administrateur du système");
else
Console.WriteLine(String.Format("PUT: Echec Resultat = {0}: {1}", iStatus, sStatus));

response.Close();

// Retourne le statut
return iStatus;
}

Byte[] getFileBytes(string Fichier)
{
// lit le flux en mode binaire
Stream stream = new FileStream(Fichier, FileMode.Open);
BinaryReader binReader = new BinaryReader(stream);
Byte[] result = binReader.ReadBytes((Int32)stream.Length); // lit tous

stream.Close();

return result;
}






Aucun commentaire:

Enregistrer un commentaire