php 파일 업로드 관련 질문이있습니다. 채택완료
업로드 부분 코드는 이렇구요.
혹시 아래 코드에서 $filename 들이 있는데 파일 네임을 정할때 현재 시간+ " _ " + 파일 이름으로 저장시키다 보니 파일명이 한글일때 파일명이 깨져서 들어가더라구요, 그래서 알파벳과 숫자를 합쳐 랜덤으로 파일명을 저장시키고 싶어서 아래의 방식을 사용하여
</p>
<p>$aAlphabet = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
$nNumber = array('0','1','2','3','4','5','6','7','8','9');
$aTmp = array();
$sConvertName = "";
for($i=0; $i<10; $i++){
array_push($aTmp,$aAlphabet[rand(0,25)]);
array_push($aTmp,$nNumber[rand(0,9)]);
}
foreach($aTmp as $nValue){
//$sConvertName.$nValue;
$sConvertName.=$nValue;
}
$sConvertName;</p>
<p>
$filename = time()."_".$i.$_FILES['m_sum']['name'][$key]; 대신에
$filename = $sConvertName; 을 사용하였는데 DB에 파일명을 저장시킬때는 어떻게 해야할지 감이 잘 안와서요..
그리고 제가 파일을 여러개 받아와서 사용하다보니 for문이 많아졌는데 혹시 간단하게 정리할수 있는 방법이 있을까요??
</p>
<p>$SAVE_DIR = G5_DATA_PATH."/mon_4/"; //파일1
$i = 0;
foreach($_FILES['m_sum']['name'] as $key => $val){
if($_FILES['m_sum']['size'][$key] > 0){
if($_FILES['m_sum']['error'][$key] === UPLOAD_ERR_OK){
if(is_uploaded_file($_FILES['m_sum']['tmp_name'][$key])){
$filename = time()."_".$i.$_FILES['m_sum']['name'][$key];
move_uploaded_file($_FILES['m_sum']['tmp_name'][$key],$SAVE_DIR.$filename);
}
}
}
$i++;
}//end foreach</p>
<p>$SAVE_DIR2 = G5_DATA_PATH."/mon_4/co_pdf/"; //파일2
$j = 0;
foreach($_FILES['co']['name'] as $key => $val){
if($_FILES['co']['size'][$key] > 0){
if($_FILES['co']['error'][$key] === UPLOAD_ERR_OK){
if(is_uploaded_file($_FILES['co']['tmp_name'][$key])){
$filename = time()."_".$j.$_FILES['co']['name'][$key];
move_uploaded_file($_FILES['co']['tmp_name'][$key],$SAVE_DIR2.$filename);
}
}
}
$j++;
}//end foreach</p>
<p>$SAVE_DIR3 = G5_DATA_PATH."/mon_4/m_pdf/"; //파일3
$k = 0;
foreach($_FILES['un']['name'] as $key => $val){
if($_FILES['un']['size'][$key] > 0){
if($_FILES['un']['error'][$key] === UPLOAD_ERR_OK){
if(is_uploaded_file($_FILES['un']['tmp_name'][$key])){
$filename = time()."_".$k.$_FILES['un']['name'][$key];
move_uploaded_file($_FILES['un']['tmp_name'][$key],$SAVE_DIR3.$filename);
}
}
}
$k++;
}//end foreach</p>
<p>for($i=0;$i<count($week);$i++)
{
$day = "m".date(m);
$m_sum = time()."_".$i.$_FILES["m_sum"]["name"][$i];
$co = time()."_".$i.$_FILES["co"]["name"][$i];
$un = time()."_".$i.$_FILES["un"]["name"][$i];</p>
<p> $sql = "insert into test_table
set week = '{$week[$i]}',
type = '{$type}',
mon = '{$mon}',
ms = '{$ms[$i]}',
m_sum = '<a href="<a href="http://test.co.kr/data/mon_4/" target="_blank" rel="noopener noreferrer">http://test.co.kr/data/mon_4/</a>" target="_blank"><a href="http://test.co.kr/data/mon_4/" target="_blank" rel="noopener noreferrer">http://test.co.kr/data/mon_4/</a></a>{$m_sum}',
mo_t = '{$mo_t[$i]}',
mo_url = '{$mo_url[$i]}',
r_t = '{$r_t[$i]}',
r_url = '{$r_url[$i]}',
co_t = '{$co_t[$i]}',
co = '<a href="<a href="http://test.co.kr/data/mon_4/co_pdf/" target="_blank" rel="noopener noreferrer">http://test.co.kr/data/mon_4/co_pdf/</a>" target="_blank"><a href="http://test.co.kr/data/mon_4/co_pdf/" target="_blank" rel="noopener noreferrer">http://test.co.kr/data/mon_4/co_pdf/</a></a>{$co}',
un_t = '{$un_t[$i]}',
un = '<a href="<a href="http://test.co.kr/data/mon_4/m_pdf/" target="_blank" rel="noopener noreferrer">http://test.co.kr/data/mon_4/m_pdf/</a>" target="_blank"><a href="http://test.co.kr/data/mon_4/m_pdf/" target="_blank" rel="noopener noreferrer">http://test.co.kr/data/mon_4/m_pdf/</a></a>{$un}'";
sql_query($sql) or die (sql_error());
}</p>
<p>
답변 2개
</p>
<p>$i = 0;</p>
<p>foreach ($_FILES as $key2 => $value){</p>
<p> switch ($key2){</p>
<p> case 'm_sum' : $SAVE_DIR = G5_DATA_PATH."/mon_4/";break;</p>
<p> case 'co' : $SAVE_DIR = G5_DATA_PATH."/mon_4/co_pdf/";break; //파일2</p>
<p> case 'un' : $SAVE_DIR = G5_DATA_PATH."/mon_4/m_pdf/";break; //파일3</p>
<p> }</p>
<p> foreach($_FILES[$key2]['name'] as $key => $val){</p>
<p> if($_FILES[$key2]['size'][$key] > 0 &&$_FILES[$key2]['error'][$key] === UPLOAD_ERR_OK && is_uploaded_file($_FILES[$key2]['tmp_name'][$key])){</p>
<p> $filename = time()."_".$i.$_FILES[$key2]['name'][$key];</p>
<p> move_uploaded_file($_FILES[$key2]['tmp_name'][$key],$SAVE_DIR.$filename);</p>
<p> }</p>
<p> }</p>
<p> $i++;</p>
<p>}//end foreach</p>
<p>
foreach 부분만 급하게 줄여봤어요
그냥 생각난대로 한거라... 오류가 날지도몰라요..
댓글을 작성하려면 로그인이 필요합니다.
굳이 저렇게 할 필요가 있을까 싶습니다
G4버젼에서 화일명을 이런 방식으로 변경해서 사용하고 있는데요
이 방법으로 충분 하리라 생각됩니다
for ($i=0; $i<count($_FILES['m_sum'][name]); $i++)
{
$filename = $_FILES['m_sum']['name'][$i];
$filename = $i.time()."_". str_replace('%', '', urlencode(str_replace(' ', '_', $filename)));
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인