반응형


:: ASP 에서 표현할 경우
     response.write(formatnumber( value, 0, -1 ))

:: PHP 에서 표현할 경우
     echo number_format($value);

:: Perl Script 에서 표현할 경우
     print cm($value);
    sub cm {
          my $num = shift;
          my ($n) = $num =~ /(\d+)/;
          1 while $n =~ s/(\d+)(\d{3})/$1,$2/;
          $num =~ s/(\d+)/$n/;
          $num;
     }

:: JSP 에서 표현할 경우
     new DecimalFormat("###,###,###,###,###").format(value);
     보통은 Bean으로 만들어서 표현을 합니다.

:: MS-SQL Query에 의해 표현할 경우
     SELECT
    REPLACE(CONVERT(VARCHAR,CONVERT(MONEY,1234567890),1),'.00','')
     결과값          
     1,234,567,890
     (1개 행 적용됨)
반응형

'WEB > CGI' 카테고리의 다른 글

Classic ASP Tricks  (0) 2019.07.15
ASP 에서 쿠키 <-> PHP에서 쿠키  (0) 2010.10.21
PHP, universal file download logic  (0) 2010.10.21
php for windows 로 메일보내기  (0) 2010.10.21
PHP 숫자에 점찍기, 소수점이하 '..'처리  (0) 2010.10.21
반응형

<%@ page language="java" import="java.util.*, java.sql.*, java.io.*" session="true" contentType="text/html;charset=euc-kr" pageEncoding="euc-kr" %>
<HTML>
<HEAD>
<title>엑셀 </title>
<meta content="text/html"; charset="euc-kr">
</head>

<body>
<%
        request.setCharacterEncoding("euc-kr");         // 한글 인코딩 설정    

try
{
        String fullPath = "/TforWindows/Tomcat5/webapps/ROOT/";
        StringBuffer sb = new StringBuffer(); //파일을 서버에 만들기 시작
        String fileName = "aaa.xls";
        
        //확장자는 xls,txt,csv 다 허용함다...
        //단지 xls,csv파일일때는 \t로 데이타를 구분해야하죠
        //그렇지만 내부적으로는 다 txt파일임다..어떤 에디터에서나 다 열리는...
        
        FileOutputStream fos = new FileOutputStream(fullPath + fileName);
        DataOutputStream dos = new DataOutputStream(fos);
        OutputStreamWriter osw = new OutputStreamWriter(dos,"MS949");  // 한글로 내용을 쓰셔야죠..
        
        //파일에 들어갈 내용들을 버퍼에 넣는다.
        sb.append("내용1");
        sb.append("\t"); //cvs파일인가?용이고..데이타의 구분이죠(tab)
        sb.append("내용2");
        sb.append("\r\n"); //파일에 버퍼의 내용을 적는다.
        
        osw.write(sb.toString(), 0, sb.length() );

        sb.delete(0,sb.length()-1); //버퍼를 지운다.
        
        //꼭 닫아주세요 ^^
        osw.close();
        dos.close();
        fos.close();
                
        
        }catch(IOException ioe){
                 out.println(ioe);
                 out.println("머야?");
        }catch(Exception ex){
                 out.println(ex);
                 out.println("머시기?");
        }
%>
</body>
</html>
반응형

'WEB > CGI' 카테고리의 다른 글

PHP MSSQL용 API  (0) 2010.10.21
2000 이후 달라진 SMTP (ASP, CDO)  (0) 2010.10.21
*OutputStream 한글 인코딩 처리  (0) 2010.10.21
JSP 파일 업로드  (0) 2010.10.21
PHP 파일의 확장자 분리하기  (0) 2010.10.21
반응형

-------------------------------------------------------------
질문
-------------------------------------------------------------
다음은 저의 허접 소스의 일부입니다.  
한글이 깨져서 나오는데, 이를 해결할 수 있는 방법이 있나요??  
================================================
try
{

sNewFileName = rd.sSaveDir + rd.vFileName.elementAt(FileNum).toString() + "N";
OutputStream os = new FileOutputStream(sNewFileName);
DataOutputStream out = new DataOutputStream(os);

for(int i=0; i < rd.vDB.size(); i++)
{
out.writeBytes("INSERT INTO =TMT003 VALUES(\"");
out.writeBytes(rd.vDB.elementAt(i).toString());
out.writeBytes("\", \"");
out.writeBytes(rd.vTable.elementAt(i).toString());
out.writeBytes("\");");
out.writeBytes("한글 테스트");
out.writeBytes("\n");
out.writeChars("한글 테스트");
out.writeBytes("\n");
out.writeUTF("한글 테스트");
out.writeBytes("\n");
}
return true;
}



-------------------------------------------------------------
답!!!
-------------------------------------------------------------
맞는 방법인지 틀린 방법인지도 모르겠지만

어쨋든 한글은 되게 하는 방법입니다 --;;

import java.io.*;

public class IOTest {
public static void main(String args[]){
try {  
String sNewFileName = "test.txt";  
OutputStream os = new FileOutputStream(sNewFileName);  
DataOutputStream out = new DataOutputStream(os);  
OutputStreamWriter osw = new OutputStreamWriter( out );
osw.write( "한글 테스트" , 0 , "한글 테스트".length() );  
osw.close();
out.close();
os.close();
} catch ( Exception e ) {
e.printStackTrace();
}
  }
}

반응형

'WEB > CGI' 카테고리의 다른 글

2000 이후 달라진 SMTP (ASP, CDO)  (0) 2010.10.21
csv 파일 서버 저장 JSP  (0) 2010.10.21
JSP 파일 업로드  (0) 2010.10.21
PHP 파일의 확장자 분리하기  (0) 2010.10.21
E-mail programming 관련  (0) 2010.10.20
반응형

파일 업로드
   - 단순한 텍스트를 전송하는 것이 아닌 바이너리 형태의 파일을 업로드 합니다.
   - 자료실 형태의 폼 학습입니다.

1. 파일 업로드를 위한 기본적인 폼 형태
   - form태그 속성들 중 input type="file" 은 파일을 선택할 수 있는 창을 만듭니다.
   - form 태그의  method와 enctype을 지정합니다.]

   <form name = "formName" method="post" enctype="multipart/form-data">
   <input type = "file" name="selectfile">

   - 파일 선택 페이지 작성

    
<html>
<body>
<form name="frmName" method="post" enctype="multipart/form-data"
  action="ViewPage.jsp">
user<br>
<input type="text" name="user"><br>
title<br>
<input type="text" name="title"><br>
file<br>
<input type="file" name="uploadFile"><br>
<input type="submit" value="UPLOAD"><br>
</form>
</body>
</html>


   - 위에 페이지에서 폼을 전송할 때 request 객체로 파라미터의 값을 얻어낼수 없습니다.
   - enctype="multipart/form-data로 전송한 폼에 담겨진 파라미터들에 대한 값을 얻어내기 위해,
     파일 찾기로 파일을 서버상의 한 폴더에 업로드 하기 위해 특별한 컴포넌트 필요합니다.
   - www.servlets.com에서 제공하는 cos.jar파일은  필요한 컴포너트 제공합니다.
   - cos-05Nov2002.zip 파일을 다운로드후 압축해제합니다.



2. 파일을 업로드하고 폼 데이터를 분석하는 도구 cos.jar
   - lib폴더 밑의 cos.jar 파일 설정하기
      ★ c:\tomcat-5.0.19\common\lib    
    
   - 어플리케이션 폴더에 업로드 되는 파일들이 저장될 폴더를 만듭니다. 폴더 이름은 자유롭게 사용

    


2. 파일 업로드 및 폼 요소 처리를 위한 MultipartRequest 클래스

   - MultipartRequest의 생성자
    . 한글 인코딩, 업로드 파일 중복의 해결

     MultipartRequest multi = new MultiPartRequest(request, folderDirectory,1024*10,"euc-kr",
                                                   new DfaultFileRenamePolicy());

     . 이객체가 생성되면서 폼에서 지정한 파일이 서버상의 폴더에 저장됩니다.



   - getParameterNames()
     폼에서 전송한 파라미터들의 이름을 Enumeration타입으로 반환, input 태그중에서 file 속성이 아닌
     모든 파라미터들의 이름을 반환 합니다.

   - getParameter()
     파라미터의 이름을 인자로 받아서 그 파라미터의 값을 반환 합니다.

   - getFileNames()
     폼요소 중 file 속성으로 지정된 input태그의 이름을 Enumeration타입으로 반환 합니다.

     <input type="file" name="uploadfile"> 태그가 폼요소에 있다며 uploadfile이란 파라메터의 이름이
     담긴 Enumeration을 반환 합니다.

   - getFilesystemName()
     서버상에 실제로 업로드된 파일 이름을 String 타입으로 반환 합니다.
     파일명이 중복될 경우 파일명뒤에 filename1.xxx   filename2.xxx 식으로 변경된 이름 반환 합니다.

   - getOriginalFileName()
     사용자가 직접 지정한 파일명을 반환, 파일명이 변경되기 전의 파일명이 반환 됩니다.

   - getContentType()
     getContentType() 메소드는 업로드된 파일의 컨텐트 타입을 반환 합니다.

   - getFile()
     서버상에 업로드된 파일에 대한 파일 객체를 반환 합니다.



3. 폼데이터 분석 & 파일 업로드 페이지 구현

<%--
/**
  *  Upload file...
  *  jsp file name : FileUploadPage.jsp
  **/
--%>
<%@page contentType="text/html;charset=euc-kr"   %>
<%@page import="com.oreilly.servlet.MultipartRequest,
                      com.oreilly.servlet.multipart.DefaultFileRenamePolicy,
                      java.util.*,
                      java.io.*"
%>
<%
String realFolder = "";
String saveFolder = "filestorage";
String encType = "euc-kr";
int maxSize = 5*1024*1024;

ServletContext context = getServletContext();
realFolder = context.getRealPath(saveFolder);
//out.println("the realpath is : " + realFolder+"<br>");
try
{
   MultipartRequest multi = null;
   multi = new MultipartRequest( request,realFolder,maxSize,encType,new DefaultFileRenamePolicy());
   Enumeration params = multi.getParameterNames();
  
   while(params.hasMoreElements()){
      String name = (String)params.nextElement();
      String value = multi.getParameter(name);
      out.println(name + " = " + value +"<br>");
   }

   Enumeration files = multi.getFileNames();
   while(files.hasMoreElements()){
      String name = (String)files.nextElement();
      String filename = multi.getFilesystemName(name);
   String original = multi.getOriginalFileName(name);
      String type = multi.getContentType(name);
      File f = multi.getFile(name);
      out.println("파라메터 이름 : " + name +"<br>");
      out.println("실제 파일 이름 : " + original +"<br>");
      out.println("저장된 파일 이름 : " + filename +"<br>");
      out.println("파일 타입 : " + type +"<br>");
      if(f!=null){
         out.println("크기 : " + f.length());
         out.println("<br>");
      }
   }
}catch(IOException ioe){
System.out.println(ioe);
}catch(Exception ex){
System.out.println(ex);
}
%>


  

4. 여러개의 파일 업로드
          
FileSelectPage.jsp

<%@page contentType="text/html; charset=euc-kr" %>
<%!
public String getParam(HttpServletRequest request, String paramName){
  if(request.getParameter(paramName)!=null){
   return request.getParameter(paramName);
  }else{
   return "";
  }
}
%>
<%
request.setCharacterEncoding("euc-kr");
int filecounter = 0;
if(request.getParameter("addcnt")!=null){
  filecounter = Integer.parseInt(request.getParameter("addcnt"));
}
%>
<html>
<head>
<title>File Select Page</title>
<link href="style.css" rel="stylesheet" type="text/css">
<script language="JavaScript">
function inputValue(form1, param, form2, idx){
var paramValue = form1.elements[idx].value;
form2.elements[idx].value = paramValue;    
return;
}
function addFile(formName){
if(formName.addcnt.value==""){
  alert(" 입력할 파일 갯수를 입력하고 확인버튼을 눌러주세요" );
  formName.addcnt.focus();      
  return;
}
formName.submit();
}

function elementCheck(formName){
   paramIndex = 1;
   for(idx=0; idx<formName.elements.length; idx++){
      if(formName.elements[idx].type == "file"){
         if(formName.elements[idx].value==""){
         var message = paramIndex+" 번째 파일정보가 누락되었습니다.\n업로드할 파일을 선택해 주세요";
      alert(message);
   formName.elements[idx].focus();
   return;  
      }
      paramIndex++;
      }
   }
   formName.action = "FileInfoView.jsp";
   formName.submit();
}
</script>
</head>
<body topmargin="100">
<div align="center"><font color="#0000ff" size="2">
복수개의 파일의 업로드를 위하여 파일 갯수를 입력한 후<br>
확인 버튼을 눌러주세요!!!<br>
입력이 완료되면 DONE 버튼을 눌러주세요</font></div><br>
<form name="frmName1" method="post">
<table width="75%" border="1" align="center" cellpadding="1" cellspacing="1" bordercolor="#660000" bgcolor="#FFFF99">
<tr bgcolor="#FFCC00">
    <td width="10%"><div align="right">user</div></td>
    <td><input type="text" name="user" onkeyup="inputValue(this.form,user,frmName2,0)" value="<%=getParam(request, "user")%>"></td>
    <td width="10%"><div align="right">title</div></td>
    <td><input type="text" name="title" onkeyup="inputValue(this.form,title,frmName2,1)" value="<%=getParam(request, "title")%>"></td>
</tr>
<tr bgcolor="#FFCC00">
<td width="15%"><div align="right">Abstract</div></td>
<td width="50%" colspan="3">
<textarea name="abstract" cols="40" onkeyup="inputValue(this.form,abstract, frmName2,2)"><%=getParam(request,"abstract")%></textarea>
</td>
</tr>
<tr>
<td colspan="4"><div align="center">
<font size="-2">추가할 파일 수 입력</font>
<input type="Text" name="addcnt">
<input type="button" value=" 확인 " onclick="addFile(this.form)">
</div>
</td>
</tr>
</table>
</form>

<form name="frmName2" method="post" enctype="multipart/form-data">
<table width="75%" border="1" align="center" cellpadding="1" cellspacing="1" bordercolor="#660000" bgcolor="#FFFF99">
<tr bgcolor="#FFCC00">
<td width="40%">
<input type="hidden" name="txtUser" value="<%=getParam(request, "user")%>">
<input type="hidden" name="txtTitle" value="<%=getParam(request, "title")%>">
<input type="hidden" name="txtAbstract" value="<%=getParam(request,"abstract")%>">
<% for(int i=0; i<filecounter; i++){%>
<input type="File" size="50" name="selectFile<%=i%>"><br>  
<% }%>
</td>
<td><input type="Button" value="DONE" onclick="elementCheck(this.form)"></td>
</tr>
</table>
</form>
</body>
</html>





<<<<  FileInfoView.jsp

<%@page contentType="text/html;charset=euc-kr"   %>
<%@page import="com.oreilly.servlet.MultipartRequest,
                com.oreilly.servlet.multipart.DefaultFileRenamePolicy,
                java.util.*,
                java.io.*"          
%>
<%
String realFolder = "";
String saveFolder = "filestorage";
String encType = "euc-kr";
int maxSize = 10*1024*1024;//10M

ServletContext context = getServletContext();
realFolder = context.getRealPath(saveFolder);
ArrayList saveFiles = new ArrayList();
ArrayList origFiles = new ArrayList();

String paramUser = "";
String paramTitle= "";
String paramAbstract = "";


try
{
MultipartRequest multi = new MultipartRequest( request,realFolder,maxSize,encType,new DefaultFileRenamePolicy());
              
paramUser = multi.getParameter("txtUser");
paramTitle = multi.getParameter("txtTitle");
paramAbstract = multi.getParameter("txtAbstract");

Enumeration files = multi.getFileNames();
while(files.hasMoreElements()){
    String name = (String)files.nextElement();
    saveFiles.add(multi.getFilesystemName(name));
    origFiles.add(multi.getOriginalFileName(name));
}
%>
<html>
<head>
<title>File Info Page</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<table width="75%" border="1" align="center" cellpadding="1" cellspacing="1" bordercolor="#660000" bgcolor="#FFFF99">
<tr>
    <td width="10%" bgcolor="#FFCC00"><div align="right"><strong>user</strong></div></td>
    <td width="30%"><%= paramUser %></td>
    <td width="10%" bgcolor="#FFCC00"><div align="right"><strong>title</strong></div></td>
    <td width="30%"><%= paramTitle %></td>
</tr>
<tr>
<td width="10%" bgcolor="#FFCC00"><div align="right"><strong>Abstract</strong></div></td>
<td width="50%" colspan="3">
  <textarea cols="50" rows="5" disabled><%= paramAbstract %></textarea>
</td>
</tr>
<tr><td colspan="4" bgcolor="#ffffff"> </td></tr>
<tr>
<td colspan="4"><strong>업로드된 파일들입니다.</strong></td>
</tr>
<%for(int i=0; i<saveFiles.size();i++){%>
<tr bgcolor="#FFCC00">
<td colspan="4">
<a href="../<%=saveFolder+"/"+saveFiles.get(i)%>"><strong><%=origFiles.get(i)%></strong></a>
</td>
</tr>
<%}%>
</table>
</body>
</html>
<%
}catch(IOException ioe){
System.out.println(ioe);
}catch(Exception ex){
System.out.println(ex);
}
%>
반응형

'WEB > CGI' 카테고리의 다른 글

csv 파일 서버 저장 JSP  (0) 2010.10.21
*OutputStream 한글 인코딩 처리  (0) 2010.10.21
PHP 파일의 확장자 분리하기  (0) 2010.10.21
E-mail programming 관련  (0) 2010.10.20
JSP에서 한글인코딩이 안될때  (0) 2010.10.20
반응형

페이지 인코딩설정.

test.jsp
<%@ page language="java" import="java.util.*, java.sql.*" session="true" contentType="text/html;charset=euc-kr" pageEncoding="euc-kr" %>
<% // 중요한건 pageEncoding="euc-kr"

request.setCharacterEncoding("euc-kr");  // 이것도 중요
...
%>



=================== 오라클이라면 위한 설정. ================

shell profile을 보면 (bash라면 .bash_profile)
#export NLS_LANG=AMERICAN_AMERICA.KO16KSC5601;
export NLS_LANG=AMERICAN_AMERICA.KO16MSWIN949;

와 같이 바꾸어줍시다
oracle 9i 부터는 win949가 ksc5601을 포함하게 되었죠..
cp949짱!

반응형

'WEB > CGI' 카테고리의 다른 글

*OutputStream 한글 인코딩 처리  (0) 2010.10.21
JSP 파일 업로드  (0) 2010.10.21
PHP 파일의 확장자 분리하기  (0) 2010.10.21
E-mail programming 관련  (0) 2010.10.20
PHP 문자열중 원하는 Tag만 제거하기  (0) 2010.10.19

+ Recent posts