J'essaye de télécharger des images sur le ftp. Je dois l'avoir dans un dossier compressé appelé par un nom spécifique, puis télécharger ce dossier dans un répertoire spécifique. Chaque fois que j'essaie, j'obtiens une erreur Le serveur distant a renvoyé une erreur: (550) Fichier indisponible Ce code fonctionne correctement lorsque j'essaie de télécharger une image à la fois. Ici, j'essaye de télécharger un dossier entier. J'ai vérifié l'uri (je l'ai copié du débogage) et il est allé très bien. Existe-t-il une manière différente de faire les dossiers de téléchargement? Je pensais que c'était un problème d'autorisation d'écriture, mais je peux me connecter et télécharger manuellement un dossier à l'endroit approprié. J'ai alors essayé d'obtenir la liste de répertoire que je suis capable de. Je ne suis pas en mesure de télécharger le dossier à la racine non plus. Je suis vraiment désespéré! Je ne sais même pas où google!Le téléchargement d'un dossier dans le sous-dossier ftp renvoie le fichier d'erreur (550) indisponible, pas d'accès
string ftpPassword = ConfigurationManager.AppSettings["ftpPassword"].ToString();
string uri = remoteDirectory;
FileInfo fileInf = new FileInfo(FileToUpload);
// Create FtpWebRequest object from the Uri provided
FtpWebRequest reqFTP = null;
reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri));
reqFTP.Credentials = new NetworkCredential(ftpUsername, ftpPassword);
reqFTP.KeepAlive = false;
reqFTP.Method = WebRequestMethods.Ftp.UploadFile;
// Specify the data transfer type.
reqFTP.UseBinary = true;
// Notify the server about the size of the uploaded file
reqFTP.ContentLength = fileInf.Length;
// The buffer size is set to 2kb
int buffLength = 2048;
byte[] buff = new byte[buffLength];
int contentLen;
// open file to be uploaded
using (FileStream fs = fileInf.OpenRead())
{
try
{
// Stream to which the file to be upload is written
using (Stream strm = reqFTP.GetRequestStream())
{
// Read from the file stream 2kb at a time till Stream content ends
contentLen = fs.Read(buff, 0, buffLength);
while (contentLen != 0)
{
// Write Content from the file stream to the FTP Upload Stream
strm.Write(buff, 0, contentLen);
contentLen = fs.Read(buff, 0, buffLength);
}
}
reqFTP = null;
////Update the database with the new image location and delete the img from the uploadedimages folder
//DataAccess.UpdateImageDB(item.ProductID, item.ImgFolder + "/" + item.IMG);
System.IO.File.Delete(fileInf.ToString());
}
{
Console.WriteLine(ex.Message, "Upload Error");
}
Je sais que le dossier existe. Je tire le nom du dossier de la base de données. Aussi, quand je l'ai franchi, j'ai copié et collé l'uri dans le navigateur et ça ne pose aucun problème. – SSs
Lorsque je me connecte à mon ftp avec FileZilla, j'ai remarqué que par le propriétaire/groupe est dit personne roue. Cela aurait-il quelque chose à voir avec cela? – SSs
Il est possible que ce soit un problème d'autorisations avec le dossier. –