복붙노트

[SQL] SQL에서 ASP.NET 매장 이미지와 ASP를위한 검색 : 이미지를

SQL

SQL에서 ASP.NET 매장 이미지와 ASP를위한 검색 : 이미지를

나는 updateprofilepicture 페이지에서 SQL 데이터베이스로 사진 JPEG, GIF 등 파일 업로드 찾고 있어요. 그런 다음 프로필 페이지에, 난 SQL 데이터베이스에서 이미지를 검색 할하고는 ASP에 표시가 : 이미지 제어 할 수 있습니다. 나는 많은 코드는이 작업을 수행하려고하고 작업을 수행하지 않았습니다. 테이블 형식 이미지의 열이 포함되어 있습니다.

해결법

  1. ==============================

    1.조엘 언급 한 바와 같이 당신은 이미지를 표시하는 HttpHandler를 또는 페이지를 사용해야합니다. 여기서, 출력 영상 (Image.ashx)에 대한 샘플 코드 :

    조엘 언급 한 바와 같이 당신은 이미지를 표시하는 HttpHandler를 또는 페이지를 사용해야합니다. 여기서, 출력 영상 (Image.ashx)에 대한 샘플 코드 :

    // ProcessRequest method of Image.ashx
    long imageId = Convert.ToInt64(Request.QueryString["ImageId"]);
    
    using (var conn = new SqlConnection(connectionString))
    using (var command = new SqlCommand(
        "SELECT ImageFile FROM ImageTable WHERE ImageId = @ImageID", conn))
    {
        command.Parameters.Add("@ImageID", SqlDbType.Int).Value = imageId;
        conn.Open();
    
        Response.ContentType = "image/gif";
        Response.BinaryWrite((byte[]) command.ExecuteScalar());
    }
    

    다음과 같은 페이지에 이미지를 사용 :

      <asp:Image id="Image1" runat="server" ImageUrl="Image.ashx?ImageID=12"/>
    
  2. ==============================

    2.여기서 기억해야 할 중요한 것은 당신이 프로필 페이지 자체로 이미지 데이터를 전송하려고하지해야한다는 것입니다. 대신, 당신은 당신의 프로필 페이지가 브라우저에 대한이 같은 그 모습 뭔가를 HTML 마크 업을 생성하려면 :

    여기서 기억해야 할 중요한 것은 당신이 프로필 페이지 자체로 이미지 데이터를 전송하려고하지해야한다는 것입니다. 대신, 당신은 당신의 프로필 페이지가 브라우저에 대한이 같은 그 모습 뭔가를 HTML 마크 업을 생성하려면 :

    <img src="~/MyImageHandler.ashx?UserID=1234" alt="User 1234 avatar" width="100px" height="150px" />
    

    제어 : 그것은 당신의 <이미지 ... / ASP>의 궁극적 인 결과이다. 그런 다음 브라우저에서 이미지를 검색하는 완전히 별도의 HTTP 요청을 전송합니다. 즉 웹 사이트 작업에 어떻게 사진입니다. 그런 다음 그 추가 요청을 처리 할 수 ​​있어야합니다. 이를 위해,하는 HTTP 처리기 (* .ASHX 파일)를 만들고 데이터베이스에서 해당 이미지 데이터를 검색하고 브라우저로 전송하는 데 사용합니다.

  3. ==============================

    3.당신은 SQL 2005 이상을 사용하는 경우가 지금은 사용되지 않는 있기 때문에 당신은 데이터 형식 이미지를 사용해서는 안됩니다. 대신 가능하면 새로운 VARBINARY (MAX) 형식을 사용하고 싶습니다. 당신이 그것을 저장 일단 당신이 오직 할 필요가있는 ADO.Net 호출을 통해 검색 입력 바이트 []에 셀 값을 캐스팅 한 후 위의 ScarletGarden의 예처럼 Response.BinaryWrite를 호출합니다.

    당신은 SQL 2005 이상을 사용하는 경우가 지금은 사용되지 않는 있기 때문에 당신은 데이터 형식 이미지를 사용해서는 안됩니다. 대신 가능하면 새로운 VARBINARY (MAX) 형식을 사용하고 싶습니다. 당신이 그것을 저장 일단 당신이 오직 할 필요가있는 ADO.Net 호출을 통해 검색 입력 바이트 []에 셀 값을 캐스팅 한 후 위의 ScarletGarden의 예처럼 Response.BinaryWrite를 호출합니다.

  4. ==============================

    4.이미지의 수백 기가 바이트 후, 나는 당신이 운영 체제 '파일 시스템과 정적 파일 HTTP 서버가 더 바쁘다는 데이터베이스,보다 적합 생각하고 자신을 찾을 수 있습니다 생각하는 이미지를 저장하기위한 다른 많은 세부 사항. 그것은 또한 당신이 등 이미지 이동, 호스트, 함께 작동하도록 기존의 무료 도구 수천 사용할 수 있습니다.

    이미지의 수백 기가 바이트 후, 나는 당신이 운영 체제 '파일 시스템과 정적 파일 HTTP 서버가 더 바쁘다는 데이터베이스,보다 적합 생각하고 자신을 찾을 수 있습니다 생각하는 이미지를 저장하기위한 다른 많은 세부 사항. 그것은 또한 당신이 등 이미지 이동, 호스트, 함께 작동하도록 기존의 무료 도구 수천 사용할 수 있습니다.

  5. ==============================

    5.대신에, 데이터베이스의 이미지를 저장하는 이미지 경로 및 / 또는 파일명을 저장한다. 이미지 데이터베이스를 작성하고 그것을 느리게 할 것입니다.

    대신에, 데이터베이스의 이미지를 저장하는 이미지 경로 및 / 또는 파일명을 저장한다. 이미지 데이터베이스를 작성하고 그것을 느리게 할 것입니다.

  6. ==============================

    6.

    protected void Page_Load(object sender, EventArgs e) {
        GridView1.DataSourceID = "";
        GridView1.DataSource = SqlDataSource1;
        GridView1.DataBind();
    }
    
    protected void btnSubmit_Click(object sender, EventArgs e) {
        string strImageName = txtImageName.Text.ToString();
    
        if (FileUpload1.PostedFile != null && FileUpload1.PostedFile.FileName != "") {
            byte[] imageSize = new byte[FileUpload1.PostedFile.ContentLength];
            HttpPostedFile uploadedImage = FileUpload1.PostedFile;
            uploadedImage.InputStream.Read(imageSize, 0, (int)FileUpload1.PostedFile.ContentLength);
    
            // Create SQL Connection
            SqlConnection con = new SqlConnection();
            con.ConnectionString = "Data Source=RND3" + "\\" + "SQLEXPRESS;Initial Catalog=SSSolutionFiles;Integrated Security=True";
    
            // Create SQL Command 
            SqlCommand cmd = new SqlCommand();
            cmd.CommandText = "INSERT INTO Imagess(ImageName,Image)" + " VALUES (@ImageName,@Image)";
            cmd.CommandType = CommandType.Text;
            cmd.Connection = con;
    
            SqlParameter ImageName = new SqlParameter("@ImageName", SqlDbType.VarChar, 50);
            ImageName.Value = strImageName.ToString();
            cmd.Parameters.Add(ImageName);
    
            SqlParameter UploadedImage = new SqlParameter("@Image", SqlDbType.Image, imageSize.Length);
            UploadedImage.Value = imageSize;
            cmd.Parameters.Add(UploadedImage);
            con.Open();
            cmd.ExecuteNonQuery();
            con.Close();
    
            Label1.Text = "File Uploaded";
    
            GridView1.DataSourceID = "";
            GridView1.DataSource = SqlDataSource1;
            GridView1.DataBind();
            con.Close();
        }
    }
    
  7. ==============================

    7.그것은 당신을 도울 수있는 이러한 링크를 시도하십시오 ..

    그것은 당신을 도울 수있는 이러한 링크를 시도하십시오 ..

    당신은 또한 서버에있는 이미지 파일을 저장하여 시도하고 SQL 테이블에 경로를 저장할 수 있습니다 .. 이러한 링크에 의해

    http://pratikataspdotnet.blogspot.in/2014/11/retrieve-images-from-path-stored-in.html

  8. from https://stackoverflow.com/questions/698912/asp-net-store-image-in-sql-and-retrieve-for-aspimage by cc-by-sa and MIT license