테스트 사이트 - 개발 중인 베타 버전입니다

신입 개발자입니다. 도와주세요..

카트시그널 4년 전 조회 2,945

어느 사이트 회원현황에 엑셀 업로드를 해야하는데 파일 용량이 크거나 해서 업로드가 안된다고 합니다.

그래서 값을 변경해야하는데 어떻게 해야하는지 도와주세요.

include_once('./_common.php');

// 상품이 많을 경우 대비 설정변경
set_time_limit ( 0 );
ini_set('memory_limit', '80M');
ini_set('upload_max_size', '80M');

 

밑에 max_size는 제가 넣어본 것인데 새로고침을 해도 안되네요...

오늘 첫출근이고... 이것 밖에 글을 못 쓴 점 죄송합니다. 

댓글을 작성하려면 로그인이 필요합니다.

답변 6개

서버회사에서 막아놓은 경우가 허다합니다.

info 보시고 전화요청 하시는게 ~

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

4년 전

post_max_size 를 추가해주면 될 듯 합니다. & upload_max_size 가 아니라 upload_max_filesize 입니다.

 

ini_set() 함수가 php.ini 설정을 바꾸지 않고도.. 해당 파일에 한하여 해당 설정이 적용되게 하는 함수입니다.

 

set_time_limit ( 0 );
ini_set('memory_limit', '80M');
ini_set('post_max_size', '80M');
ini_set('upload_max_filesize', '80M');

로그인 후 평가할 수 있습니다

답변에 대한 댓글 7개

카트시그널
4년 전
set_time_limit ( 0 );
ini_set('memory_limit', '80M');
ini_set('upload_max_filesize', '80M');
ini_set('post_max_size', '80M');
ini_set('max_execution_time', '80M');
ini_set('max_input_time', '80M');

이렇게 추가를 해줬는데... 그래도 엑셀파일이 업로드가 안되네요
들은 바로는 php.ini를 바꿔보라고 하는데,,, 어떻게 들어가는지도 모르겠고 경로도
/usr/local/php73/lib/php.ini 이렇게 되어있어서...
도와주세요 답변 부탁드립니다..
마르스컴퍼니
4년 전
지금 적용한 코드로도 안된다면.. php.ini 를 수정해도 안되는 것은 동일합니다.

php.ini 수정 -> 웹서버(apache 등) 재시작 -> 모든 파일에 해당 설정이 적용되는 것이고,
ini_set() 함수는 php.ini 에 기본설정된 것과 별개로 해당파일에서만 다른 설정으로 적용될 수 있게 하는 것입니다.

지금 적용한 코드로 안된다면, php.ini 를 수정해도 안된다고 볼 수 있습니다.

php.ini 파일 수정은 리눅스 환경이라면 vi 에디터를 사용하여 수정을 해야 하는데.. 경험이 있지 않다면 쉽지 않은 편입니다.

일단은 ini_set() 함수로 해당파일에 적용하는 방법을 더 추천하겠습니다.
지금의 코드로 업로드가 안된다고 하였는데.. 원인을 찾는 것이 1차입니다. 원인을 찾는 것이 중요합니다.
용량(내용)이 작은 파일로 성공적으로 업로드되는 지를 먼저 확인해보았으면 합니다.
정말 용량 문제인지.. 다른 문제인지를 확인해야 합니다.

제 예상으로는.. ini_set() 코드가 들어갔기 때문에.. 용량문제가 아닌 다른 문제가 있을 가능성이 큽니다. 오류 메시지를 표시해주는 옵션을 추가하여 다른 오류가 있는지를 확인해 보는 것이 좋을 것 같습니다.

error_reporting(E_ALL);
ini_set("display_errors", 1);
set_time_limit ( 0 );
ini_set('memory_limit', '80M');
ini_set('post_max_size', '80M');
ini_set('upload_max_filesize', '80M');
카트시그널
4년 전
error_reporting(E_ALL);
ini_set("display_errors", 1);

을 추가하면 어디서 어떤 오류가 나는지 어떻게 알 수 있나요?
마르스컴퍼니
4년 전
오류 메시지는,

해당 파일을 브라우저에서 실행할 때 (오류가 있는 경우) 표시됩니다.
카트시그널
4년 전
넣어봤는데 오류는 뜨지 않습니다. 사이트 새로고침 한 다음에 다시 엑셀 업로드를 했는데 그대로 업로드가 되지 않고 게시물이 없다고 뜹니다... 어떻게 해야 할까요 ㅠㅠ
마르스컴퍼니
4년 전
파일내용을 1/10로 줄여서 업로드는 해보셨는지요?
1/10 로 줄여서 업로드했을 때.. 정상처리된다면.. 용량 문제일 가능성이 있습니다.
이런식으로 실제 원인을 찾는 것이 중요합니다.

1/10 로 줄여서 업로드를 하는데도.. 문제가 있다면..

중간중간 코드마다

(기존코드)

echo 'aa';
exit;

(기존코드)

echo 'bb';
exit;

등으로 어디까지 정상 실행되고.. 어디서 부터 문제가 생기는지를 찾아나가면서, 원인지점 -> 원인을 찾아나가야 됩니다.

중간중간 이해가 잘 안되는 코드 부분 등이 있다면.. '구글 검색'을 통해 관련 자료를 찾아보는 것도 괜찮습니다.

계속해서 오리무중이라면... 제작의뢰 게시판에 의뢰를 해볼 수 있습니다. https://sir.kr/request
마르스컴퍼니
4년 전
set_time_limit ( 0 );
ini_set('memory_limit', '80M');
ini_set('upload_max_filesize', '80M');
ini_set('post_max_size', '80M');
ini_set('max_execution_time', '80M');
ini_set('max_input_time', '80M');

코드에서 ,
ini_set('max_execution_time', '80M');
ini_set('max_input_time', '80M');
은 time 설정이기 때문에 초단위 숫자로 입력되어야 합니다.

이부분은 빼거나 300 등의 숫자로 바꾸어주어야 될 것 같습니다.

ini_set('max_execution_time', 300);
ini_set('max_input_time', 300);

댓글을 작성하려면 로그인이 필요합니다.

phpinfo 모르시면 구글에 검색해서 하나씩 알아보셔야할거같네요

php설정자체를 바꿔줘야하는작업이라 답변해드리기 어려워보이네요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

카트시그널
4년 전
관리자 메인 페이지에서 환경설정에서 pageInfo() 들어가보니까 무슨 설명서?? 처럼 표처럼 돼있는게 엄청 많더라고요.. 거기 upload_max_filesize가 21M으로 돼있더라고요.. 그래서 set_time_limit ( 0 );
ini_set('memory_limit', '21M');
ini_set('upload_max_filesize', '21M');
로 바꿔줬는데도 안돼요 ㅠㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

n
4년 전

먼저 phpinfo() 하셔서 지정된 용량 확인하세요. 

그리고 php설정파일인 php.ini 에서 

upload_max_filesize

post_max_size

를 늘려주시면됩니다. 

memory_limit는 일반적으로 128M로 지정되어 있는데 더 늘리실 꺼면 이부분도 수정해 주세요.

리눅스 쓰시면 /etc/php.ini 에서 수정해 주시고 아파치 재 시작해 주시면 됩니다.

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

카트시그널
4년 전
phpinfo()가 무엇인가요? 처음 켜보는 프로그램이고 아무것도 몰라서ㅠㅠ
<?php
include_once('./_common.php');

// 상품이 많을 경우 대비 설정변경
set_time_limit ( 0 );
ini_set('memory_limit', '128M');


$file = $_FILES['excelfile']['tmp_name'];

include_once(G5_LIB_PATH.'/Excel/reader.php');

$data = new Spreadsheet_Excel_Reader();

// Set output Encoding.
$data->setOutputEncoding('UTF-8');
일부분을 캡쳐해봅니다.
네츄
4년 전
phpinfo() 는 php 설정정보와 로드된 모듈을 출력해 주는 함수 입니다.
임의의 파일을 만드시고 <?php phpinfo(); ?> 하시고 브라우저에서 그 파일에 접근하시면 설정 정보가 표시 됩니다.

거기서 업로드 용량관련 설정 정보들을 확인하시면 최대 업로드 사이즈를 알 수 있습니다.
일반적으로 upload_max_filesize, post_max_size 값중 작은 값으로 설정되니 ini_set으로 이부분을 phpinfo() 위에 적용해 보시고 정상적으로 적용되는지 확인 하시면 됩니다.
안되시면 서버에서 php.ini 파일을 직접 수정하셔야 합니다. set_time_limit 와 memory_limit 는 업로드 시간이 오래 걸려 expire 이 표시 되거나 파일용량이 128M를 넘을때 수정해 주시면 됩니다

댓글을 작성하려면 로그인이 필요합니다.

4년 전

아 이건 php.ini에서 용량을 256에서 1024정도로 늘려야하는데 정안되면 엑셀을 잘라서 올리세요 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

4년 전

서버에서 업로드 크기도 체크해 봐야합니다 (php.ini)

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

카트시그널
4년 전
혹시 어떻게 하는지 알 수 있을까요?? brackets 으로 쓰고 있는데 뭐가 뭔지 모르겠네요ㅠㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인