반응형

InnerHTML , append 등등

새롭게 데이터를 받아서 그려진 조회 리스트 및 데이터의 HTML의 데이터를 가져오기는 쉽지 않은거 같습니다.

 

Height 길이를 가져와야되는 부분이 생겼는데 해당 부분 가져오는 스크립트 입니다.

$("생성자").prop('scrollHeight');

오랜만에 삽질 덕분에 1시간 정도 허비 한거 같습니다.. ㅎㅎ;;

 

 

반응형

매번 SMTP를 25번 , 587번으로만 보내다가 465 Port는 보내지지 않았었는데

 

해당 아래 소스로 465번 포트도 보내지는 것을 확인했다.

 

아래 소스로 이메일 전송 로직을 만들었다.

[HttpPost]
public void SendEmail_PORT465(HttpFileCollectionBase files, string strPath, string strSubject, string strBody)
{
    System.Web.Mail.MailMessage msg = new System.Web.Mail.MailMessage();
    msg.Subject = strSubject;

    msg.Body = strBody;
    msg.BodyFormat = System.Web.Mail.MailFormat.Html;
    msg.BodyEncoding = System.Text.Encoding.UTF8;

    msg.From = "From";
    msg.To = "To";


    msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserver", "Host");
    msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", "465");
    msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusing", "2");

    msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
    //User name
    msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "smtp ID");
    //Password
    msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "smtp PW");
    msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl", "true");

    System.Web.Mail.SmtpMail.SmtpServer = "smtp Host";
    System.Web.Mail.SmtpMail.Send(msg);


}
반응형

모바일에서 Input 박스 클릭 시 가상키보드가 무조건적으로 뜨는데 foucs를 주면 뜨지않게 하기 위한 HTML 태그입니다.

 

Input 박스에 inputmode="none" 를 사용하면 가상 키보드가 뜨지 않습니다.

 

단, 계속 뜨지 않기 떄문에 복사 붙혀넣기 할때만 사용 하시는게 좋습니다.

반응형

오랜만에 찾아 뵙습니다.

 

현재 회사에서는 Ajax 파리미터를 단일건으로만 보내고 있었습니다.

Object 형식으로 DataTable 형태로 파라미터를 던져 중요한 데이터만 가지고 쿼리를 조지는 형태로만 사용중이였는데

MASTER / DETAIL 형태로 데이터를 가져가야만 하는 로직이 생겨서 아래와 같이 정리합니다.

 

1. JAVASCRIPT (Json 형태 만들기)

var array_mst = new Array();
        var array_dtl = new Array();
        var final_vJsonData = new Object();
        var vJsonData_MST = new Object;
        vJsonData_MST.MST_A = "";
        vJsonData_MST.MST_B = "";
        vJsonData_MST.MST_C = "";
        vJsonData_MST.MST_D = "";
        array_mst.push(vJsonData_MST);

        $.each($("#PutAway_Result_Area tr"), function (i) {

            var vJsonData_DTL = new Object;

            vJsonData_DTL.DTL_A = "";
            vJsonData_DTL.DTL_B = "";
            vJsonData_DTL.DTL_C = "";
            vJsonData_DTL.DTL_D = "";

            array_dtl.push(vJsonData_DTL);
        });

        final_vJsonData.MST = array_mst;
        final_vJsonData.DTL = array_dtl;

 

2. AJAX

$.ajax({
    type: "POST",
    url: "",
    async: true,
    dataType: "json",
    data: { "vJsonData": _fnMakeJson(final_vJsonData) },
    success: function (result) {
        alert();
    }, error: function (xhr, status, error) {
        console.log(error);
    }
});

//C#의 JsonConvert.DeserializeObject<DataSet> 쓰기위해서는 양쪽의 대괄호를 빼야됨
function _fnMakeJson(data) {
    if (data != undefined) {
        var str = JSON.stringify(data);
        if (str.indexOf("[") == -1) {
            str = "[" + str + "]";
        }
        return str;
    }
}

 

3. C#

DataSet ds = JsonConvert.DeserializeObject<DataSet>(JSON파라미터);

 

이와같이 Dataset으로 데이터를 가져와서 조지면 되는것을 2시간이나 허비하면서 삽질 하여 적어둡니다.

 

다음엔 이런 실수 안하길..

반응형

파일 다운로드 로직을 만들었을때 Return File을 사용하여 브라우저에서 다운로드를 받을 수 있게 만들었었다.

이번 프로젝트에서도 파일 다운로드 로직이 있었고 기존대로 사용하였는데 문제가 발생 하였다.

이미지로 데이터 화 시켜서 올렸을 때 '아이폰' 에서는 Content Type에 따라서 확장자가 변경되어 저장이 되고 있었다.

 

실제로 사용하던 Return 형태

return File(파일명, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", 다운로드 받을 때 파일명);

 

Content Type을 보면 알겠지만 예전에 엑셀 파일을 다운로드 받을 때 사용했었던 Excel Content Type 이였는데

브라우저에서 받을 때 혹은 안드로이드에서 받을 때는 문제가 되지 않았다.

 

다만 아이폰에서 받았을 때 이미지 파일임에도 불구하고 뒤에 .xlsx가 붙어서 다운로드가 되었다.

이미지 형태로 여러가지 받아야 하는 상황이여서 파일이 유동적으로 변하기 때문에 골치 아팠다.

 

File 매개변수는 무조건 파일명과 Content Type을 입력해야했기 떄문에 자체적으로 판단하여 파일이 다운로드 됐으면 했는데 아래와 같은 방법으로 해결하였다.

return File(파일명, "application/octet-stream", 다운로드 시 파일명);

 

현재 파일 다운로드 로직 상 bmp , jpg , jpeg , jpe , jfif , tif , tiff , png 해당 확장자만 저장 되게끔 사용되고 있어서 

해당 확장자들은 정상적으로 다운로드 되는 것 까지 확인 하였다.

반응형

카카오톡에서 URL을 입력 시 해당 사이트에 데이터들이 나오는데 그것들이 제대로 나오지 않는 경우가 있습니다.

 

아래의 데이터를 Head 태그 안에 넣어서 수정하고 카카오톡 사이트에 들어가서 캐시를 지워주면 바로 보실 수 있습니다.

<meta property="og:type" content="website" />
<meta property="og:title" content="타이틀" />
<meta property="og:image" content="사이트 시 이미지" />
<meta property="og:site_name" content="사이트 이름" />
<meta property="og:url" content="URL" />
<meta property="og:description" content="사이트 설명" />

 

카카오톡 캐시 지우는 사이트 링크 (로그인 필수)

https://developers.kakao.com/tool/clear/og

 

카카오계정 로그인

여기를 눌러 링크를 확인하세요.

accounts.kakao.com

 

 

반응형

오랜만에 작성하는 블로그 글입니다.

 

메일에서 pdf를 다운로드 받을 수 있게 A 태그를 사용하여 마크업을 만들고 

 

메일 내용에서 다운 받을 수 있게 하는 마크업을 만드려고 하였습니다.

 

하지만 pdf는 파일다운로드는 실패하였고 Viewer로만 나오게 하는 것만 성공 하였습니다.

 

해당 내용 관련하여 정리합니다.

 

 

결론 : 브라우저 정책 마다 다운로드 되기도 하고 안되기도 하고 한다.

정리 : https에서 http 사이트의 pdf 다운로드 하는게 목적

※브라우저※
IE : 가능
엣지 : 경고창으로 띄어주고 사용자가 직접 다운로드 받게 하였음.
크롬 : 정책상 불가능 (20년도 9월쯤 http에 pdf 파일을 다운로드 받는 것을 차단 시켜버림)
        ※ 참고 - https://blog.chromium.org/2020/02/protecting-users-from-insecure.html
파이어 폭스 : 가능

직접 다운로드는 불가능 하고 파일 다이렉트 경로를 a href에 지정하여 브라우저의 pdf 뷰어로 열게끔 하는것은 모든 브라우저가 가능하여 그렇게 작업 하였음.


반응형

안녕하세요

오랜만에 글을 적으러 왔습니다.

 

프로젝트 로컬에 이미지가 있는지 여부를 확인 해야되는 상황이 있었는데 아래와 같은 코드로 

확인 후 Boolean 처리로 할 수 있는걸 알게 되어서 정리 합니다.

 

이미지뿐만 아니라 다른 파일들도 가능 할 것으로 보입니다.

//이미지 여부 체크
function fnImgChk(url) {

    var vResult;

    $.ajax({
        url: url,
        type: 'HEAD',
        async: false,
        success: function () {
            vResult = true;
        },
        error: function () {
            vResult = false;
        }
    });

    return vResult;
}

+ Recent posts