Follow Us on Twitter  |

c# 파일 업로드 다운로드



위의 코드에서 22~47줄은 파일 처리를 처리하고 48~65줄은 양식 처리를 처리합니다. MultipartReaderHTTP 요청 본문에서 섹션을 읽으면 요청 콘텐츠가 구문 분석되어 실제 디스크(파일) 및 메모리(양식 데이터)에 저장됩니다. ASP.NET 사용자의 파일 업로드를 수락하는 것이 매우 쉬워졌습니다. FileUpload 컨트롤을 사용하면 다음 예제에서 볼 수 있듯이 소량의 코드 줄로 수행할 수 있습니다. 그러나 사용자로부터 파일을 수락할 때 고려해야 할 보안 문제가 있음을 확인하십시오! 다음은 필요한 태그입니다: 보시다시피, 그것은 모두 비교적 간단합니다. UploadButton을 클릭하면 업로드 컨트롤에 파일이 지정되었는지 확인합니다. 있는 경우 FileUpload 컨트롤 SaveAs 메서드를 사용하여 파일을 저장합니다. 우리는 프로젝트의 루트 (우리는 이것을 얻기 위해 MapPath 메서드를 사용)뿐만 아니라 사용자가 지정한 경로의 이름 부분을 사용합니다. 모든 것이 잘 되면 StatusLabel의 Text 속성을 설정하여 사용자에게 알립니다 . 이 API 작업 메서드는 파일을 검색 하 고 바이트의 배열로 파일을 변환 한 다음 바이트 배열 및 메타 데이터와 FileContentResult를 반환 합니다. 다음 코드 조각에는 예제가 표시됩니다. save file details to database as well as server folder protected void btnUploadMe_Click(object sender, EventArgs e) { try { if (fuFileUploader.PostedFile != null && fuFileUploader.PostedFile.ContentLength > 0) { string fileName = Path.GetFileName(fuFileUploader.PostedFile.FileName); string fileExtension = Path.GetExtension(fuFileUploader.PostedFile.FileName); 이 양식에는 파일을 업로드하는 asp.net 파일 업로드 컨트롤과 파일 이름(예: 업로드된 파일 설명)을 입력하는 텍스트 상자와 저장된 파일에 대한 다운로드 링크가 있는 gridview가 포함되어 있습니다. 다운로드 링크는 데이터베이스에 저장된 파일 이름을 표시하는 asp:link단추를 사용하여 표시됩니다.

따라서 사용자가 파일을 업로드 할 때 먼저 폴더에 파일을 저장하고 파일을 다시 검색 할 수있는 SQL 데이터베이스에 이름을 저장합니다. 사용자가 파일을 선택하고 이미지 업로드 단추를 클릭하면 클라이언트 컴퓨터에서 원격 서버로 파일을 업로드하는 것은 많은 웹 사이트 및 응용 프로그램에서 매우 일반적인 작업입니다. 그것은 널리 소셜 그물, 포럼, 온라인 경매 등에서 사용됩니다. 하나 또는 다른 업로드 작업을 해결하는 역할을 ASP.NET MVC의 다양한 업로드 구성 요소가 있습니다, 예를 들어 당신은 단일 또는 여러 파일을 업로드해야 할 수 있습니다, 작거나 매우 큰 크기의 파일로 작업, 전체 폴더 또는 파일을 전송, 그냥 이미지를 업로드하거나 preprsdfsdfs sd 를 미리 focess. 따라서 빠르고 신뢰할 수 있을 뿐만 아니라 요구 사항에 맞는 업로드 도구를 찾아야 합니다. 파일을 다운로드하기 위해 HTTP Get 요청을 한 다음 응답 내용을 실제 파일로 복사할 수 있는 메모리 스트림으로 읽습니다. 다음 코드 조각에는 예제가 표시됩니다. 이제 서버 폴더에서 파일을 업로드하고 다운로드하기 위해 아래 샘플 코드 조각을 추가하십시오 : //download 버튼은 gridview 보호 된 void lnkDownloadMe_Click (개체 발신자, EventArgs e)에서 파일을 다운로드합니다 {LinkButton lnkbtn = 보낸 사람에게 LinkButton로 사용하십시오.

그리드뷰로우 gvrow = lnkbtn. 명명 컨테이너를 그리드뷰로우로 지정합니다. int fileId = Convert.ToInt32(gvUploadedFiles.DataKeys[gvrow.gvrow. 행 인덱스]를 참조하십시오. 값.토스트링()); 사용 (SqlConnection sqlConn = 새 SqlConnection (strConn)) { 사용 (SqlCommand sqlCmd = 새 SqlCommand()) { sqlCmd.CommandText = “SELECT * FROM FileDetails [이메일 보호]”; sqlCmd.Parameters.AddWithValue(“@FileId”, fileId); sqlCmd.Connection = sqlConn.Open() SqlDataReader dr = sqlCmd.ExecuteReader(); if (박사. Read()) { 문자열 파일 이름 = dr[“FileName”]. 토스트링(); 문자열 파일길이 = dr[“FileSize”]를 참조하십시오. 토스트링(); 문자열 filePath = dr[“FilePath”]. 토스트링(); 경우(File.Exists(filePath)) { 응답.지우기(); 응답.버퍼 출력 = 거짓; Response.ContentType = “애플리케이션/옥텟 스트림”; Response.AddHeader(“콘텐츠 길이”, 파일길이); Response.AddHeader(“콘텐츠 처리”, “첨부 파일” 파일 이름=” + 파일 이름); 응답.전송 파일(파일 경로); 응답.플러시(); } {lblMsg.Text = “오류: 파일을 찾을 수 없습니다!”; } } } } { lblMsg.Text = “오류: 파일을 다운로드하는 동안 오류!”; } 다행히도 다중 업로드 시나리오를 지원하고 고려된 HTML 컨트롤의 단점을 피하는 많은 타사 유틸리티가 있습니다.


Get in touch with us

0800 163224

Looking for a quote?

Click on your choice below


Testimonials

Commercial security

Looking for commercial security?