컨텐츠몰 특별할인 9월1일~12월31일

bootstrip fileinput 멀티업로드 chunk 지원버전 > 그누보드5 스킨

그누보드5
영카트5
스터디
Q & A
제작의뢰
컨텐츠몰
부가서비스
소모임
커뮤니티

그누보드5 스킨

스킨 다운로드시 좋아요 클릭과 감사의 코멘트를 남기시면 제작자에게 큰 힘이됩니다. ^^y

bootstrip fileinput 멀티업로드 chunk 지원버전 정보

게시판 bootstrip fileinput 멀티업로드 chunk 지원버전

첨부파일

첨부파일 g5_multi_upload_chunk.zip (1.3M) 25회 다운로드 2020-09-09 00:17:57
테스트한 버전5.4.2.8
호환 가능 버전5.4

본문

기존버전에서 chunk업로드 가능하게 수정해서 업로드 해드립니다.

chunk(청크)업로드는 하나의 파일을 작은 용량으로 잘라서 여러번 업로드 하는 방식으로 파일업로드제한이 있는 환경(e.g, 웹호스팅)에서 대용량파일을 업로드할때 사용하면 좋습니다.^^

 

기존버전 : https://sir.kr/g5_skin/39529

 

수정내역

- 파일등록할때 bf_no와 정렬번호 동기화

- 파일을 삭제할때 원본글의 파일갯수 동기화

- 파일정렬할때 bf_no 동기화

- ajax, chunk로 업로드방식 구분

- 일부 코드 위치변경

 

이정도 될 것 같습니다. 사용은 기존버전하고 똑같이 사용해주시면 됩니다.

업로드방식 변경은

/skin/board/multi_upload_chunk/write.skin.php의

$uploadType을 ajax 또는 chunk로 지정해주시면 맞게 변경이 됩니다.

 

파일설명(bf_content)을 지원하게끔 작업해보았으나 꽤나 큰 작업이어서 보류하였습니다.

 

감사합니다.

 

추가 수정이력

# 2020-09-09 00:18

- chunk업로드일때 bf_no 업로드된 순서대로 정렬되게 수정

추천9

댓글 전체

소중한 피드백 감사합니다. 수정하여서 다시 파일 첨부하였습니다.
직접 수정하시려면
/extend/fileinput.config.php 72줄
쿼리문중 정렬부분을
order by bf_datetime asc
=>
order by bf_order_index desc, bf_datetime asc

이렇게 수정해주시기 바랍니다.
현재 사용하는 게시판에 이식해서 사용이 가능한가 테스트 중인데.. 작동을 안하네요 ^^;;;
혹시 살펴봐야 할곳이 있을까요? ^^;;;
이런 메세지만..Your browser doesn't have Flash, Silverlight or HTML5 support.
참고로 원본은 잘 됩니다. ^^;;
에러메시지 자체는 플래시나 HTML5를 지원하지 않는 브라우저라는 얘기인데요..음..혹시 크롬이나 파이어폭스에서 접속하셔도 동일하신가요?
완벽하게 작동하는거 같읍니다 ~

<input type="file" name="bf_file[]" id="bf_file_<?php echo $i+1 ?>" title="파일첨부 <?php echo $i+1 ?> : 용량 <?php echo $upload_max_filesize ?> 이하만 업로드 가능" class="frm_file ">

요거 위치좀 알려주시면 감사하겠읍니다

찾아보기 버튼 하단에 고정하고 capture="camera" accept="image/*" 요속성 넣을려고 합니다~
write.skin.php 에 FileUpload로 찾아보시면 보이실꺼예요.
참고로 skin파일에서 bf_file의 이름은 사용하지 않습니다.
hook을 이용해서 파일전송된 후에 따로 처리를 해줍니다.

accept는 옵션으로 따로 지정해주셔도 됩니다.
plugin 폴더에
/js/fileinput.config.js 5줄
/*allowedFileTypes: ['image'],
allowedFileExtensions: ['jpg','jpeg','gif'],*/

또는

plugin 폴더에
/fileinput.php 52줄에 옵션 넣어주는 부분에 추가로 넣으시면 됩니다.
const fileUpload = setFileInput("FileUpload", {
    language: 'kr',
    allowedFileTypes: ['image'],
    allowedFileExtensions: ['jpg','jpeg','gif'],
....

이렇게요.
감사합니다^^

기존 게시판에서 스킨 변경시 순서에 약간 문제가생깁니다 ~

/extend/fileinput.config.php

131 번째 줄에 bf_no 추가하여 해결 했는데.. 다른곳에 영향을 미치지 않을지 모르겠읍니다.
음..이미 데이터가 있는 상황을 고려하지 않았네요.
이럴때는 bf_order_index가 추가된 후에
bf_order_index가 빈값인 경우 bf_no의 값을 bf_order_index로 넣어주는 작업을 하셔야 합니다.

update {$g5['board_file_table']} set bf_order_index = bf_no where bo_table='사용하는bo_table명' and bf_order_index=''

이런 작업을 해주시면 이어서 사용하시는데 문제 없을꺼예요.

이작업을 안해주셔도 어차피 수정할때마다 bf_no랑 bf_order_index값을 동기화 시키기 때문에 문제 없으리라 사료됩니다.
질문 있어요 근데 uid를 게시판테이블에 넣으려고하는데 어떻게 해야할까요? 스크립트에서 문제인것같은데
게시판 파일테이블은 잘 되는데 옵션을 모르겠어요
/plugin/bootstrap-fileinput-master/fileinput.php 3줄에 보시면

//uid 필드추가
if(!sql_query(" select uid from {$write_table} limit 1", false)) {
    sql_query(" ALTER TABLE `{$write_table}`
                    ADD `uid` varchar(100) NOT NULL DEFAULT '' AFTER `wr_10` ", true);
}

이 쿼리문이 있습니다. write.skin.php에서 플러그인폴더의 fileinput.php을 인크루드 시키면 자동으로 추가해줍니다만.. DB의 설정이 datetime에 관해서 0000-00-00 형식을 지원안하게 되어있으면 DB에서 수동으로 추가해줘야 합니다.

쿼리문에
SET SESSION sql_mode = '';
또는
SET GLOBAL sql_mode = '';

쿼리문과 함께 위의 uid추가하는 쿼리문을 실행해주시면 됩니다.
파일 업로드 테스트 해보니.

chunk/ajax 동일하게 단일파일 약 120M 까지 업로드 됩니다.
현재 개인서버로 기본 스킨 기준 2G(2039M) 세팅 사용되고 있읍니다.

Out of Memory 오류 및 메모리 사용량이 엄청나게 올라갑니다 ~
제가 영상파일 하나 chunk로 업로드 2.5기가 업로드 테스트 하긴 했습니다.
다른 파일도 더 테스트 해보도록 하겠습니다.
보안때문에 chunk파일 업로드할때 token생성해서 보내고있는데 파일이 클수록 토큰생성 호출 횟수도 많아질테니 아무래도 이 영향도 있어 보입니다.
소중한 피드백 너무나 감사합니다.
300~400메가짜리 동영상파일을 chunk로 한꺼번에 첨부하여 업로드 테스트 해봤습니다.
이 과정중에서 별다른 오류나 이상은 발견하지 못하였습니다.
^^ 원인은 모르겠으나 제컴퓨터 한대에서만 안되고 있읍니다
다른 컴퓨터 에서 하니 잘되네요 ^^

원인찾고 있읍니다.
불러오기 70~98% 정도에서 멈춰서 메모리 급격하게 올라가기 시작하는데
제컴만 그렇네요

제컴이 문제인거 같읍니다 ~ 죄송합니다~ ㅋㅋ
전체 1,844 |RSS
그누보드5 스킨 내용 검색

회원로그인

진행중 포인트경매

  1. 참여7 회 시작20.09.23 19:57 종료20.09.30 19:57

(주)에스아이알소프트 (06212) 서울시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 대표메일:admin@sir.kr
사업자등록번호:217-81-36347 대표:홍석명 통신판매업신고번호:2014-서울강남-02098호 개인정보보호책임자:이총

© SIRSOFT