0

ストリームデータを画像としてftpサーバーに保存する方法は?

 FileInfo fileInf = new FileInfo("1" + ".jpg");
                        string uri = "ftp://" + "hostip//Data//" + fileInf.Name;
                        FtpWebRequest reqFTP;

                        // Create FtpWebRequest object from the Uri provided
                        reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(
                             "ftp://" + "ipaddress//Data//" + fileInf.Name));

                        // Provide the WebPermission Credintials
                        reqFTP.Credentials = new NetworkCredential("username",
                                                              "password");

                        // By default KeepAlive is true, where the control connection is 
                        // not closed after a command is executed.
                        reqFTP.KeepAlive = false;

                        // Specify the command to be executed.
                        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; ???
                        using (var img = Image.FromStream(image))
                        {
                            img.Save(adduser.User_Id + ".jpg", ImageFormat.Jpeg);
                        }

教えてください。

4

2 に答える 2

1

データ (画像) をバイト配列に取得してから送信する必要があります。FtpWebRequest.GetResponse ドキュメントの例は基本を示していますが、ファイルを追加しています。他のすべては、あなたがしていることに関連しています(追加をアップロードファイルに置き換えます)。

イメージをバイト配列に取得するには、次のように記述できます。

byte[] imageBuffer = File.ReadAllBytes(imageFileName);

他のすべては、ドキュメントの例と非常によく似ているはずです。

于 2012-05-03T13:29:26.353 に答える
0

FTP サーバーからファイルをダウンロードするためのサンプル コードを次に示します。

Uri url = new Uri("ftp://ftp.demo.com/Image1.jpg");
if (url.Scheme == Uri.UriSchemeFtp)
{
    FtpWebRequest objRequest = (FtpWebRequest)FtpWebRequest.Create(url);
    //Set credentials if required else comment this Credential code
    NetworkCredential objCredential = new NetworkCredential("FTPUserName", "FTPPassword");
    objRequest.Credentials = objCredential;
    objRequest.Method = WebRequestMethods.Ftp.DownloadFile;
    FtpWebResponse objResponse = (FtpWebResponse)objRequest.GetResponse();
    StreamReader objReader = new StreamReader(objResponse.GetResponseStream());
    byte[] buffer = new byte[16 * 1024];
    int len = 0;
    FileStream objFS = new FileStream(Server.MapPath("Image1.jpg"), FileMode.Create, FileAccess.Write, FileShare.Read);
    while ((len = objReader.BaseStream.Read(buffer, 0, buffer.Length)) != 0)
    {
        objFS.Write(buffer, 0, len);
    }
    objFS.Close();
    objResponse.Close();
}
于 2012-05-14T14:45:32.837 に答える