2010-11-30 2 views
0

사용자가 업로드 할 파일을 찾을 수있는 html 양식이 있습니다.Cakephp가 이미지를 업로드 할 때 스크립트가 완료되기 전에 tmp_name 파일이 삭제되고 있습니까?

cakephp 스크립트에서 move_uploaded_file()을 사용하여 임시 위치에서 서버 위치로 파일을 업로드합니다.

move_uploaded_file($file['tmp_name'], $url); 

그러나 파일이 업로드가 완료되기 전에 사라지는 것 같다 :

인 move_uploaded_file (/img/recipes/5.jpg) function.move 업로드 한 파일은] :에 실패 오픈 스트림 : 해당 파일 또는 디렉토리 없음 [APP \ app_controller.php, line 97]

move_uploaded_file() [function.move-uploaded-file] : 'C : \ Windows \ Temp \ phpF25A.tmp'를 이동할 수 없습니다. '/img/recipes/5.jpg'[APP \ app_controller.php, line 97]

답변

2

대상이 존재하지 않는다고 생각합니다. /img/recipes/5.jpg은 UNIX 시스템에 업로드 할 수있는 유효한 디렉토리가 아니며 Windows에서는 완전히 유효하지 않습니다.

URL 대신 파일을 저장하려면 (C:\webroot\project\images\foo.jpg과 같은) 절대 경로를 만들어야합니다.

+0

서버는 우분투 서버 에디션에 있습니다. 대상 경로에 대해서는 cakephp의 URL 리디렉션 기능이 자동으로 적절한 URL로 공식화 될 것이라고 생각합니다. 나는 그것을 들여다 볼 것이다. 잠깐, 방금 경로 앞에 슬래시를 넣었다는 것을 알았습니다. < –

+0

@Razor'move_uploaded_file' 함수는 Cake 나 그 라우터와 아무 관련이 없습니다. 또한 URL은 파일 시스템 경로와 관련이 없습니다. 죄송합니다. 유효한 경로를 직접 만들어야합니다. Cake에는 많은 마법이 없습니다. :) [Cake 's constants] (http://book.cakephp.org/view/1141/Core-Definition-Constants)를 사용하여 앱과 관련된 디렉토리를 얻을 수 있습니다. – deceze

+0

하하, 지금 고칠 수있게 도와 줘서 고마워! –

1

소스 파일 (사용자가 업로드 한 파일)이 아니라 /img/recipes/5.jpg가 존재하지 않는다고 불평합니다.

+0

나는 그것을 조사 할 것이다. –

관련 문제