티스토리 뷰

그누보드 4 이하 다중 파일 업로드, 삭제 웹접근성 개선

/bbs/write.php
  • id 할당
  • label 추가
  • 안내 text 인식 개선
// 가변 파일
$file_script = "";
$file_length = -1;
// 수정의 경우 파일업로드 필드가 가변적으로 늘어나야 하고 삭제 표시도 해주어야 합니다.
if ($w == "u") {
    for ($i=0; $i<$file[count]; $i++) {
        $row = sql_fetch(" select bf_file, bf_content from $g4[board_file_table] where bo_table = '$bo_table' and wr_id = '$wr_id' and bf_no = '$i' ");
        if ($row[bf_file]) {
            $file_script .= "add_file(\" {$file[$i][source]}({$file[$i][size]}) 파일 삭제";
            if ($is_file_content)
                //$file_script .= "
"; // 첨부파일설명에서 ' 또는 " 입력되면 오류나는 부분 수정 $file_script .= "
"; $file_script .= "\");\n"; } else $file_script .= "add_file('');\n"; } $file_length = $file[count] - 1; }

 

/skin/board/*/write.skin.php
  • 중첩 table 문제 개선
  • id 할당
  • label 추가
  • 안내 text 인식 개선
  • Javascript jQuery 활용 개선
<ul id="variableFiles"></ul>
<?// print_r2($file); ?>
<script type="text/javascript">
var flen = 0;
function add_file(delete_code) {
    var upload_count = <?=(int)$board[bo_upload_count]?>;
    if (upload_count && flen >= upload_count) {
        alert("이 게시판은 "+upload_count+"개 까지만 파일 업로드가 가능합니다.");
        return;
    }

    var objTbl = $("#variableFiles");
    var objCell = $("<li></li>");

    var innerHtml = "<label for='bf_file"+ flen +"' class='tts'>첨부파일 "+ flen +"</label> <input size=50 type='file' class='field' name='bf_file[]' id='bf_file"+ flen +"' title='첨부 파일 "+ flen +" 용량 <?=$upload_max_filesize?> 이하만 업로드 가능'>";
    if (delete_code)
        innerHtml += delete_code;
    else
    {
        <? if ($is_file_content) { ?>
        innerHtml += "<br /><label for='bf_content"+ flen +"' class='tts'>첨부파일 "+ flen +" 내용</label> <input type='text' class='field' size='50' name='bf_content[]' id='bf_content"+ flen +"' title='업로드 이미지 파일"+ flen +"에 해당 되는 내용을 입력하세요.' />";
        <? } ?>
        ;
    }

    $(objCell).html(innerHtml).appendTo(objTbl);

    flen++;
}

<?=$file_script; //수정시에 필요한 스크립트?>

function del_file()
{
    // file_length 이하로는 필드가 삭제되지 않아야 합니다.
    var file_length = <?=(int)$file_length?>;
    var objRows = $("#variableFiles li");
    var objRows_length = $(objRows).size();
    if (objRows_length - 1 > file_length) {
        $(objRows).eq(objRows_length - 1).remove();
        flen--;
    }
}
</script>


댓글