1

使用 C# ASP.Net 和 Visual Studio 2012 Ultimate。

我重新使用了表单中的一些代码。从 ftp 服务器下载图像。

public class FTPdownloader
{
    public Image Download(string fileName, string ftpServerIP, string ftpUserID, string ftpPassword)
    {
        FtpWebRequest reqFTP;
        Image tmpImage = null;
        try
        {
            reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServerIP + "/" + fileName));
            reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;
            reqFTP.UseBinary = true;
            reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);

            FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
            Stream ftpStream = response.GetResponseStream();

            tmpImage = Image.FromStream(ftpStream);

            ftpStream.Close();
            //outputStream.Close();
            response.Close();
        }
        catch (Exception ex)
        {
            //MessageBox.Show(ex.Message);
        }
        return tmpImage;
    }
}

效果很好,我所做的就是在我的表格上这样称呼它。

imgPart.Image = ftpclass.Download("" + "" + ".jpg", "address/images", "user", "pass");

现在这对winforms很有用。我的新项目是一个 asp.net 网络表单。我需要它来做同样的事情。我已经重新使用了这段代码,看起来还可以,但是当我调用 img.Image 的方法时,我发现 img.Image 在 asp.net 中不存在。基本上我返回一个图像,我能找到的最接近的是一个 Img.ImageUrl,它当然是一个字符串。

所以我希望这是对这段代码的轻微改动,我缺少调用中的某些内容(asp.net 的新手)。

任何帮助都会很棒。多谢你们!

4

1 回答 1

2

System.Drawing.Image您的下载函数返回的和System.Web.UI.Webcontrols.ImageASP.NET 的 Image 控件 ( )之间存在冲突。

您可以通过稍微修改 FTP 下载功能来简化问题,以便下载并保存文件以供您的 Image Web 控件使用。

将下载功能更改为:

private void Download(string fileName, string ftpServerIP, string ftpUserID, string ftpPassword, string outputName)
{
    using(WebClient request = new WebClient())
    {
        request.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
        byte[] fileData = request.DownloadData(string.Format("ftp://{0}{1}", ftpServerIP, filename));

        using(FileStream file = File.Create(Server.MapPath(outputName)))
        {
            file.Write(fileData, 0, fileData.Length);
        }
    }
}

您可以使用此代码来获取您的图像:

// Download image
ftpclass.Download("/images/myimage.jpg", "server-address", "user", "pass", "/mysavedimage.jpg");

// Now link to the image
imgPart.ImageUrl = "/mysavedimage.jpg";

希望这可以帮助。

于 2013-01-18T10:39:44.357 回答