다음 코드를 사용하여 FTP 서버에 이미지를 업로드하고 있는데 문제가 있습니다. 업로드하기 전에 이미지의 크기 (높이와 너비)를 확인하기 위해 코드를 사용하면 .png 파일이 FTP 서버에 생성되었지만 비어 있거나 잘못된 형식이며 치수를 확인하기 위해 코드를 제거하면 이미지가 올바르게 업로드됩니다. 이것에 대해 어떤 생각이 있습니까? 언급 한 바와 같이 당신이 당신의 Image
에로드 할 때FTP로 이미지 업로드 문제
public ActionResult UploadFile(int type, HttpPostedFileBase imagefile)
{
//check image height and width
using (System.Drawing.Image image = System.Drawing.Image.FromStream(imagefile.InputStream, true, true))
{
if (image.Width > 160 || image.Height > 160)
{
//do something here
}
}//end check image height and width
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftpPath" + "/" + imagefile.FileName);
request.Credentials = new NetworkCredential("ftpUserName", "ftpPassword");
request.Method = WebRequestMethods.Ftp.UploadFile;
var sourceStream = imagefile.InputStream;
Stream requestStream = request.GetRequestStream();
request.ContentLength = sourceStream.Length;
int BUFFER_SIZE = imagefile.ContentLength;
byte[] buffer = new byte[BUFFER_SIZE];
int bytesRead = sourceStream.Read(buffer, 0, BUFFER_SIZE);
do
{
requestStream.Write(buffer, 0, bytesRead);
bytesRead = sourceStream.Read(buffer, 0, BUFFER_SIZE);
} while (bytesRead > 0);
sourceStream.Close();
requestStream.Close();
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
response.Close();
}
'FromStream'을 호출하면'InputStream'을 사용하여 스트림의 끝 부분에있게됩니다. 따라서 나중에 읽을 때 읽을 부분이 없습니다. 스트림을 처음으로 재설정하거나 모든 것을 바이트 배열로 읽어 와서 별도의 스트림을 만들어야합니다. –
"올바르게 업로드"대신 "잘못 업로드되었습니다"라고 쓰고 싶습니까? – JohnH