묻고답하기
자료실에서 파일다운로드시 Allowed memory size..에러떠요..어케 없애죠?--
2007.10.11 22:47
안녕하세요.. php왕초보 입니다. 열심히 공부중에 홈페이지를 작성중인데요..
교재에 있는 자료실을 힘들게 구현했는데 용량이 좀 큰화일은 아래와 같이 에러가 떠요//
그리고 용량에 관계없이 "실행" 클릭 하면 실행이 안돼요."저장" 은 아래와 깉이 대용량은 에러가 발생하고요
에러중 Allowed memory size of 33554432 bytes 를 어디서 바꿀수 잇는거죠??좀 갈켜주세요....
실행이 안돼는 이유도요... 이책 저책 봐도 넘 힘들어요...
[에러]
fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 75933774 bytes) in C:\homehjh\dataroom\download.php on line 38
[소스:download.php]
<?
/****************************************************************/
/* Name : DataRoom */
/* File : download.php */
/* Use : Download횟수를 DB에 기록하는 페이지 */
/****************************************************************/
// 테이블 이름을 파라미터로부터 얻어온다
$pro_table = (isset( $HTTP_GET_VARS['table'] ) ? $HTTP_GET_VARS['table'] : "dataroom_list" );
$pro_id = ( isset( $HTTP_GET_VARS[id] ) ? $HTTP_GET_VARS[id] : 0);
$pro_file = ( isset( $HTTP_GET_VARS[id] ) ? $HTTP_GET_VARS[id] : 0);
// 필요한 설정이 담겨있는 config.php를 include 시킨다.
include "config.php";
// Mysql Server에 접속한다.
$conn = mysql_pconnect( $set_host, $set_user, $set_password );
mysql_select_db( $set_dbname );
// 파일에 대한 정보를 가져온다.
$query = " select filename, filesize from $pro_table where id=$pro_id";
$res = mysql_query ( $query );
$info = mysql_fetch_array( $res );
// 조회수를 기록한다.
$update_query = "update $pro_table set down_cnt=down_cnt+1 where id=$pro_id";
mysql_query ( $update_query );
// 파일 이름
$filename = "files/".$pro_table."/".$info[filename];
// 파일내용을 넘겨준다.
if ( file_exists( $filename ) ) {
$fp = fopen( "files/".$pro_table."/".$info[filename], "r" );
$file = fread( $fp, $info[filesize] );
// 브라우저 골라서 헤더를 따로 따로 전송 해 준다.(5.5 일때는 다르게 해줘야 함)
if ( strstr( $HTTP_USER_AGENT, "MSIE 5.5" ) ) {
header( "Content-Type: doesn/matter\r\n" );
header( "Content-Disposition: filename=".$info[filename]."\r\n\r\n" );
header( "Content-Transfer-Encoding: binary\r\n" );
}
else {
header( "Content-type: application/octet-stream\r\n" );
header( "Content-Disposition: attachment; filename=".$info[filename]."\r\n\r\n" );
header( "Content-Transfer-Encoding: binary\r\n" );
}
print $file;
fclose($fp);
}
else
echo "<html><script>history.back(-1);</script></html>";
?>