2

画像を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");
  }
4

3 に答える 3

0

ディレクトリ(フォルダ)が存在するかどうかを確認する必要があります。存在しない場合は、FTPで作成する必要があります。ほとんどのFTPクライアントがあなたのためにこれを行うと私はかなり確信しています。

于 2010-12-06T18:30:06.600 に答える
0

NTFS パーミッションに移動し、「フル コントロール」で IUSR を ftp フォルダに追加する必要がありました。

于 2011-08-12T08:13:22.780 に答える