반응형
php 파일업로드

오늘은 php 파일업로드에 관해서 쓰려한다.
사실 본인이.. 가끔 만들때 깜빡깜빡해서 참고하려는 자료이다. ㅎㅎ

자.. 일단 첫 html에서 확인해야될 사항.
form 속성에 enctype="multipart/form-data" <-- 이것이다. 이거 빼먹으면 오류난다.
<form name='frm1' method='post' enctype="multipart/form-data" action='xxx.php'>
잊지 말자.
그리고 다중 업로드와 단일 업로드가 있지만.스크립트로 만들어주면 그리 크게 힘들지는 않을것이다.(사실 스크립트가 더 어려운거 같다.. ㅠ_ㅠ)
나중에 스크립트는 따로 올리겠다..

자.. 이제 우리에게 가장 익숙한 html 테그이다.
input 태크 type='file' 를 하면 다른 사이트에서 업로드 할때 보이던것과 매우 흡사하다. ㅋ(아닐수도 있구요.. 방법이 워낙많아서..)
일단 기본으로 가는것이 가장 하기 편하겠다.
<input name='f_0' type='file'> 보기 않좋아도 어쩔수 없다.. ㅠㅠ 그리고 크기는 style속성으로 줄수 있다. ex) style='width:300px;'

이렇게 입력을 하고 php로 넘어가겠다.(솔찍히 너무 잡다한 말을 쓰네요.. -_-;;)

php에서 넘겨준 f_0값을 받자.
$f_0 <-- 이렇게만 해도 받는다.
일단 파일이 들어온 유무를 확인하자.
if ($f_0!=""){}
위와같이 하면 f_0값이 null이 아니면 if구문 안에 있는 구문을 실행을 할것이다.
자 그리고 우리가 해야될것은 php에 있는 함수로 확인을 하는 작업이다. 다들 알고 있는 함수일것이다.
is_uploaded_file($f_0) 이렇게하면 파일이 HTTP POST를 통해 업로드 된것인지 아닌지 알려줍니다. 사실인경우 TRUE 그리고 파일의 존제유무. file_exists()로 동일한 명의 파일이 있는지 확인후 있다면 현제 파일의 파일명을 변경시켜줍니다.

그리고 파일의 명과 사이즈가져오는것을 잊었네요.
$userfile_name=$_FILES['f_0']['name'];
$userfile_size=$_FILES['f_0']['size'];

이렇게 하면 파일명과 사이즈를 가져올수 있습니다.
그리고 중간은 과감히 빼겠습니다.

move_uploaded_file() 이녀석이 이제 파일을 실제로 디스크에 써주는 녀석입니다. move_uploaded_file($f_0,'경로포함된 파일명') 이렇게 해주면 파일이 업로드가 됩니다.
되도록이면 보여주는것이 좋으니 if(!move_uploaded_file()){} 해주는것이 좋겠지요.


ex)
php_upload.html
<html>
<body>
<form name='frm1' method='post' enctype="multipart/form-data" action='php_upload.php'>
<input name='f_0' type='file'>
</form>
</body>
</html>

php_upload.php
//파일업로드
if($f_0!=""){
  if(is_uploaded_file($f_0)){
    if($Files[0]!=""){
     if(file_exists("경로".$Files[0])) {
        @unlink("경로".$Files[0]);// 여기서는 귀찮아서 지움.
      }  
    }
   $userfile_name=$_FILES['f_0']['name'];
   $userfile_size=$_FILES['f_0']['size'];

   $maxsize=3*1024*1024;//3MB 용량 제한

    if($userfile_size>=$maxsize){
      echo "<script>alert('파일용량이 초과되었습니다.'); history.back(-1);</script>"; 
      exit;
    }
    $upfile =explode(".",$userfile_name);
    $fname=str_replace('/','',$upfile[0]);
    $file_name=$fname."_".$number.".".$upfile[1];

    if (!move_uploaded_file($f_0,"경로/$file_name" )) {
      echo("<script>alert('파일업로드를 실패하였습니다');history.go(-1);</script>");
      exit;
    }
} else {
    echo "<script>alert('정상적인 업로드 방식이 아닙니다');history.go(-1);</script>";
    exit; 
 }
반응형
반응형

음.. 소수점을 남기고 계산하는것이 아니라. 소수점 이하 올림 반올림 내림 3가지 함수를 설명해놓을것이다.

1. ceil() - 소수점 이하 올림

2. round() - 소수점 이하 반올림

3. floor() - 소수점 이하 내림

이렇게 3개의 함수가 있다.

ex)

$crf1 = 12.0001;
$crf2 = 12.4999;
$crf3 = 12.5999;
$crf4 = 12.9001;

ceil($crf1); -> 13 이된다.
round($crf2); -> 12가 된다.
round($crf3); -> 13가 된다.
floor($crf4); -> 12가 된다.

위에 보는바와 같이 올림일경우 소수점에 값이 있을경우 무조건 값을 올리고, 내림일경우 소수점 이하 삭제를 한다.
그리고 반올림일경우는 소수점 이하 한자리만 가지고 판단을 한다. 이점을 유념해야겠다.

반응형

'프로그래밍 > PHP' 카테고리의 다른 글

[PHP] date()함수 날짜 계산  (0) 2010.11.11
[PHP] 파일업로드  (0) 2010.08.27
[PHP] 문자를 특정 위치로 부터 일정 길이까지 자르기. substr()  (0) 2010.08.06
PHP 문자열 자르기  (0) 2010.07.12
문자 자르기.  (0) 2010.07.12
반응형

PHP에 substr() 이라는 함수가 있다.

이녀석을 사용해서 어떠한 식으로 뽑히는지 아래 예제를 보도록 하자.

$test='12345678';

$tview = substr($test,0,3);

echo " tview = ".$tview;

위와같이 할경우 1부터 3개 즉 123이찍히게 됩니다.

즉 test의 값 '12345678'의 위치값은 0~7 입니다.

만약 78만 보이게하고 싶다하시면.

substr($test,6,2); 이렇게 입력을 하시면 됩니다.

반응형

'프로그래밍 > PHP' 카테고리의 다른 글

[PHP] date()함수 날짜 계산  (0) 2010.11.11
[PHP] 파일업로드  (0) 2010.08.27
[PHP] 소수점 계산  (0) 2010.08.12
PHP 문자열 자르기  (0) 2010.07.12
문자 자르기.  (0) 2010.07.12
반응형
function Shorten_String($String, $MaxLen, $ShortenStr) {
/*
2 바이트 문자를 깨끗하게 잘라주는 함수
인자로는 자를 문자열($String), 최대 길이($MaxLen),
말줄임표(보통 ... 을 사용)($ShortenStr)를 받는다.
원리는 문자열의 처음부터시작하여 이것이 2바이트문자이면(127보다크면)
자를 문자열의 길이를 2를 증가시키고 그렇지않으면 1을 증가시킨다.
이렇게 하여 마지막에 원래의 문자열에서 자를 문자열의 길이만큼을
시작점(0)에서 잘라주면 된다.
*/
$StringLen = strlen($String); // 원래 문자열의 길이를 구함
$EffectLen = $MaxLen - strlen($ShortenStr);
// 최대문자열의 길이에서 말줄임표문자열의 길이를 뺀다
if ( $StringLen < $MaxLen )return $String;
// 원래문자열의 길이가 최대문자열의 길이보다 작으면 그냥 리턴한다.

for ($i = 0; $i <= $EffectLen; $i++) {
$LastStr = substr($String, $i, 1);
if ( ord($LastStr) > 127 ) $i++;
// 2바이트문자라고 생각되면 $i를 1을 더 증가시켜
// 결국은 2가 증가하게 된다.
// 다음에 오는 1바이트는 당연 지금 바이트의 문자에 귀속되는 문자이다.
}
$RetStr = substr($String, 0, $i);
// 위에서 구한 문자열의 길이만큼으로 자른다.
return $RetStr .= $ShortenStr;
// 여기에 말줄임문자를 붙여서 리턴해준다.
}

$str=Shorten_String($str,16,'...');


반응형

'프로그래밍 > PHP' 카테고리의 다른 글

[PHP] date()함수 날짜 계산  (0) 2010.11.11
[PHP] 파일업로드  (0) 2010.08.27
[PHP] 소수점 계산  (0) 2010.08.12
[PHP] 문자를 특정 위치로 부터 일정 길이까지 자르기. substr()  (0) 2010.08.06
문자 자르기.  (0) 2010.07.12
반응형

substr과 strpos를 사용하여 간단하게 원하는 문자를 기준으로 잘라 낼 수 있습니다.


$str = "동해물과 백수산이 마르고 닳도록...";

$slide_str = " "; // 잘라낼 문자열 또는 기호

$f_pos = strpos($str, $slide_str); // $slide_str에 있는 문자 또는 기호가 나타나는 첫번째 위치를 구합니다.

$a = substr($str, 0, $f_pos); // $str의 첫문자부터 strpos로 찾은 위치까지 잘라서 $a에 집어넣습니다.

$b = substr($str, $f_pos); // 찾은 위치 이후 부터 남은 문자열을 $b에 집어넣습니다.


echo $a."<br />";

echo $b;


반응형

+ Recent posts