我一直在为客户端构建功能,使他们能够从www.site1.com上传图像,将图像URL存储到数据库以及将图像存储到www.site2.com/images上的文件。我已经设法将文件上传到目标位置,但是当我尝试打开并查看图像时,据说其中包含错误。我从来没有真正需要处理图像,所以我很茫然。

这是用于上传文件的方法:

public static void UpLoadImage(Stream image, string target)
    {
        FtpWebRequest req = (FtpWebRequest)WebRequest.Create("ftp://www.site2.com/images/" + target);
        req.UseBinary = true;
        req.Method = WebRequestMethods.Ftp.UploadFile;
        req.Credentials = new NetworkCredential("myUser", "myPass");
        StreamReader rdr = new StreamReader(image);
        byte[] fileData = Encoding.UTF8.GetBytes(rdr.ReadToEnd());

        rdr.Close();
        req.ContentLength = fileData.Length;
        Stream reqStream = req.GetRequestStream();
        reqStream.Write(fileData, 0, fileData.Length);
        reqStream.Close();
    }


这是从中调用方法的地方(image1是HttpPostedFileBase):

myObject.UpLoadImage(image1.InputStream, storedTL.ID + "-1.png");


如果有办法可以使此代码起作用,或者有更好的方法来执行此操作,请提供帮助。

最佳答案

StreamReader用于读取文本。

更改:

StreamReader rdr = new StreamReader(image);
byte[] fileData = Encoding.UTF8.GetBytes(rdr.ReadToEnd());




byte[] fileData = File.ReadAllBytes(image);

08-26 23:25
查看更多