画像をftpにアップロードしようとしています。特定の名前で呼ばれる圧縮フォルダーに入れ、そのフォルダーを特定のディレクトリにアップロードする必要があります。試行するたびにエラーが表示されます リモートサーバーがエラーを返しました: (550) ファイルを利用できません このコードは、一度に 1 つの画像をアップロードしようとしているときに正常に機能します。ここでは、フォルダー全体をアップロードしようとしています。私はURIをチェックしました(私はデバッグからコピーしました)、それはうまくいきました。フォルダをアップロードする別の方法はありますか? 書き込み権限の問題かと思いましたが、手動でログインしてフォルダを適切な場所にアップロードできます。次に、できるディレクトリリストを取得しようとしました。フォルダーをルートにアップロードすることもできません。私はかなり必死です!どこでググればいいのかわからない!
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");
}