2010-07-16 2 views
0

symfony1.1을 사용하고 있습니다. 내 응용 프로그램에서 관리자를 통해 일부 이미지 파일을 업로드하고 DB에 BLOB로 콘텐츠를 저장해야합니다.오브젝트 ID # 5와 같은 이상한 파일 이름

내가하는 일은 다음과 같습니다.
1. 업로드 된 파일에 fopen 핸들을 가져 오는 중.
2. 이것을 stream_get_contents ($ handle)에 전달하십시오.
3. 내용을 blob로 저장하십시오.

모든 것이 WinXP에서 정상적으로 작동하지만 Linux에서 실행되는 라이브 서버에서는 업로드 된 파일에 대해 "object id # 5"로 이상한 파일 이름을 얻습니다. 두 구성을 모두 확인했지만 동일합니다.

아무도 무슨 일이 일어나고 있는지 알고 계십니까?

감사합니다.

업데이트 : 문제는 의견에 의해 제안 된 PHP의 다른 버전과 관련이 있습니다. OS와는 관련이 없습니다. 모두에게 감사드립니다.

+0

파일 이름을 가져올 코드를 게시하십시오. 원래의 파일 이름은'$ _FILES [ 'input_name'] [ 'name']'에있는'$ _FILES [ 'input_name'] [ 'name']'과 임시 위치 (리눅스에서는/tmp) 'tmp_name'] ' –

+1

Symfony 1.1은 더 이상 지원되지 않습니다. Symfony 1.3.1/1.4로 업그레이드해야합니다. –

답변

0

"object id # 5"는 개체를 파일 이름으로 사용했음을 의미합니다.
var_dump() 변수는 내부에 무엇이 있는지보기 위해 파일을 만들기 전에 변수입니다.

+0

네,하지만 창문에서는 __toString()을 호출하여 문자열로 변환하지만, 리눅스에서는 __toString이 호출되지 않습니다. 나는 지금 당장 일을했지만, 왜 그런지 궁금하다. – Harsha

+1

동일한 버전의 PHP? – Naktibalda

+2

@Harsha 각 컴퓨터마다 다른 PHP 버전을 사용할 수 있습니까? 버전 5.2.0 이전에는 PHP가 __toString()을 사용하여 자동으로 약간 까다 롭습니다. http://www.php.net/manual/en/language.oop5.magic.php#language.oop5.magic.tostring –