.NET Framework에서 이미지로 작업하는 방법을 이해하려고 바쁩니다 website -> service -> email
.
지금까지 내가 한 일은 이미지를 변환하여 base64
내 서비스에 업로드하는 것입니다. 다음으로이를 바이트 배열로 변환 한 다음 데이터베이스에 저장합니다.
동시에 내 데이터베이스에 바이트를 삽입 할 때 이미지를 이메일에 첨부하여 전송하고 싶습니다.
이때 첨부 파일은 열 수없는 파일 일 뿐이므로 이미지가 아닌 바이트 배열 일뿐입니다.
씨#
public string SendEmail(string send)
{
try
{
TestDb db = new TestDb();
TestImage result = new TestImage();
string[] arData = send.Split('|');
byte[] bytes = new byte[arData[0].Length * sizeof(char)];
System.Buffer.BlockCopy(arData[0].ToCharArray(), 0, bytes, 0, bytes.Length);
result.TestImg = bytes;
result.TestId = int.Parse(arData[1].ToString());
db.TestImage.Attach(result);
db.TestImage.Add(result);
db.SaveChanges();
string foto = "name";
Attachment att = new Attachment(new MemoryStream(bytes), foto);
MailMessage mail = new MailMessage();
NetworkCredential cred = new NetworkCredential("[email protected]", "Test123");
mail.To.Add("[email protected]");
mail.Subject = "subject Test";
mail.Attachments.Add(att);
mail.From = new MailAddress("[email protected]");
System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient("smtp.gmail.com", 587);
smtp.UseDefaultCredentials = false;
smtp.EnableSsl = true;
smtp.Credentials = cred;
smtp.Send(mail);
return result.Id.ToString();
}
catch (Exception)
{
throw;
}
}
Angularjs
$scope.link = '\img\ionic.png';
var imageData=$base64.encode($scope.link);
$scope.sendimg = function() {
console.log(imageData);
$http.post("http://localhost:53101/TruckService.svc/sendEmail/" + imageData + '|' + 1
)
.success(function(data) {
})
.error(function(data) {
console.log("failure");
})
}
문제는 이미지를 base64로 변환하는 것입니다. 따라서 이미지 imageData
로 다시 변환하여 올바른 이미지가 있는지 확인하십시오 .
온라인 도구를 사용하여 base64를 이미지 링크로 변환 할 수 있습니다.
그래서 문제라면 아래와 같이 이미지를 변환 해보세요.
function toDataUrl(url, callback, outputFormat){
var img = new Image();
img.crossOrigin = 'Anonymous';
img.onload = function(){
var canvas = document.createElement('CANVAS');
var ctx = canvas.getContext('2d');
var dataURL;
canvas.height = this.height;
canvas.width = this.width;
ctx.drawImage(this, 0, 0);
dataURL = canvas.toDataURL(outputFormat);
callback(dataURL);
canvas = null;
};
img.src = url;
}
toDataUrl('url', function(base64Img){
// Base64DataURL
});
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다