2010-08-04 4 views
0

내 코드입니다 :내가 C#을 여기</p> <p>에서 찾아보기 버튼에서 내 이메일에 첨부 파일을 추가하기 위해 노력하고있어

string fileName = Path.Combine(Path.GetTempPath(),FileUploadControl.FileName); 
using (FileStream fs = File.Open(fileName, FileMode.Create, FileAccess.Write, FileShare.Read)) 
{ 
    byte[] buffer = new byte[1024]; 
    int bytesRead; while ((bytesRead = fs.Read(buffer, 0, buffer.Length)) > 0) 
    { 
     fs.Write(buffer, 0, bytesRead); 
    } 
} 

Attachment attachment = new Attachment(fileName); 
msg.Attachments.Add(attachment); 

$ 예외 { "스트림하지 않습니다 지원 읽기. "} System.Exception {System.NotSupportedException}

내가 뭘 잘못하고 있니?

+3

이전 질문에 대한 답변을 수락하길 원합니다. –

+0

이 사이트를 처음 사용했습니다. 받아 들일 방법을 내게 설명해 주시겠습니까? 나는 내 프로필을 훑어 보았고 어떻게해야하는지 알 수 없었다. – user311166

+0

빈 수표를 클릭하면 답변을 수락하는 녹색으로 바뀝니다. 당신은 귀하의 프로필에서 이전에 묻는 질문을보고 그것들을 확인할 수 있습니다. –

답변

0

가까이에 있습니다. 파일 입력 스트림에서 읽으려고했지만 다음을 입력하지 않았습니다.

string fileName = Path.Combine(Path.GetTempPath(),FileUploadControl.FileName); 
using (FileStream fs = File.Open(fileName, FileMode.Create, FileAccess.Write, FileShare.Read)) 
{ 
    byte[] buffer = new byte[1024]; 
    int bytesRead; while ((bytesRead = FileUploadControl.PostedFile.InputStream.Read(buffer, 0, buffer.Length)) > 0) 
    { 
     fs.Write(buffer, 0, bytesRead); 
    } 
} 

Attachment attachment = new Attachment(fileName); 
msg.Attachments.Add(attachment); 
1

FileUpload.FileName이 서버 쪽이 아니라 클라이언트 쪽의 파일 이름을 반환한다는 인상하에있었습니다. FileUpload.FileBytes는 byte [] 배열입니다.

string fileName = Path.Combine(Path.GetTempPath(),FileUploadControl.FileName); 
using (FileStream fs = File.Open(fileName, FileMode.Create, FileAccess.Write)) 
{ 
    fs.Write(FileUploadControl.FileBytes, 0, FileUploadControl.FileBytes.Length); 
} 

Attachment attachment = new Attachment(fileName); 
msg.Attachments.Add(attachment); 
+0

당신은 내가 어떻게 구현할 것인가를 도와 줄 수 있습니까? 이 행을 변경합니까? string fileName = Path.Combine (Path.GetTempPath(), FileUploadControl.FileName); – user311166

+0

파일을 읽을 필요는 없으며 서면으로 만 읽을 수 있습니다. FileUpload.FileBytes, byte [] 배열을 사용해야하며, ** 파일에 **을 써야합니다. –

+0

이메일에 첨부하여 코드 예제를 보낼 수 있습니까? – user311166

-2
Attachment attachment = new Attachment(FileUploadControl.FileName); 
msg.Attachments.Add(attachment); 

에 대한 예제를 살펴보십시오.

+0

올바르지 않습니다. http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.fileupload.filename을 읽으십시오.aspx 그리고 당신은 이것이 클라이언트 컴퓨터에있는 파일의 이름 일뿐입니다. 당신이 그것을 쓸 때까지 디스크에 기록되지 않습니다. –

+0

하지만 실제로 파일을 업로드하는 데 컨트롤을 사용하고 있지 않습니다. 대화 상자를 사용하여 이메일 첨부 경로를 얻는 것입니다. 관련된 업로드가 없습니다. –

+0

string fileName = Path.Combine (Path.GetTempPath(), FileUploadControl.FileName); 첨부 파일 첨부 = 새 첨부 파일 (fileName); msg.Attachments.Add (첨부 파일); 이 작업을 !! – user311166

관련 문제