2010-06-10 2 views
6

문제점 : PHP를 통해 서버에 업로드 한 파일에서 원래 파일 생성 시간을 확인하고 싶습니다.PHP : 업로드 된 파일에서 생성 날짜를 얻는 방법?

제 생각에 파일은 클라이언트에서 내 서버의 임시 파일로 복사됩니다.이 파일은 $ _FILES var에서 참조됩니다. 임시 파일은 방금 생성 되었기 때문에 사용하지 않습니다. 클라이언트 원본 파일에서 생성 날짜를 얻을 수있는 방법이 있습니까?

감사

+0

시도해 볼 수 있습니다 filemtime [http://php.net/manual/en/function.filemtime.php](http://php.net/manual/en/function.filemtime.php) – Karlisson

답변

10

이 데이터는 브라우저에서 보낸, 그래서 그것을 액세스 할 수있는 방법이 없습니다되지 않습니다. 파일과 함께 전송 된 데이터는 mime-type, filename 및 파일 내용입니다.

생성 날짜를 원하면 사용자가 플래시를 제공하거나 Flash 또는 Java를 통해 특수 파일 업로드 메커니즘을 생성해야합니다.

+0

감사합니다! 추가 정보 : 파일 내용 안에 생성 날짜를 넣는 것이 일반적입니다. 이 파일은 .w3g입니다 (Warcraft 3와 관련된 재생 파일). 파일 작성자가 만든 날짜를 파일에 넣을 수있는 기회가 있으면 그 파일을 더 자세히 분석하는 데 시간을 할애 할 것입니다. 어떤 일반적인 관습법이 있는지 궁금해서 데이트가 있는지 여부에 대한 힌트를주세요. –

3

아니요, 데이터 스트림은 웹 서버에 '복사'된 파일 대신 tmp 디렉토리의 파일에 쓰여집니다. 기술적으로 '새로운'파일입니다.

+0

스트리밍되는 것과 복사되는 것의 차이점을 이해하지 못합니다. 두 경우 모두 단순히 한 곳에서 다른 곳으로 바이트를 전송하지 않습니까? 아니면 전송 된 메타 데이터에 차이가 있습니까? –

+0

글쎄, 당신이 이해할 수있는 과정을 '보는'것을 돕는 것이 더 많았다. 핵심은 생성/수정 된 데이터가 실제 파일 내용이 아닌 파일 시스템에 저장된다는 것입니다. 따라서 브라우저가 파일을 보내면 실제 파일 내용 만 보내고 더 이상의 정보는 보내지 않습니다. FileReference 클래스는 업로드와 함께 수동으로 보낼 수있는 데이터에 대한 액세스 (클라이언트 측)를 제공하기 때문에 Flash가 실제로 필요한 경우 가장 좋은 옵션입니다. –

+0

네, 그 모든 것이 지금 아주 분명합니다. 고맙습니다. –

0

파일 유형에 따라 MS Office, Open Office, PDF 및 기타 여러 유형이 파일 속성 내에서 "만든 날짜"값을 보유 할 수 있습니다. 파일을 열고 관련 정보를 읽어야합니다. 파일 형식에 따라 다릅니다.

0

생성하는 동안 파일 형식에 날짜 형식으로 문자열을 쓸 수 있으며 이에 따라 후자를 검색 할 수 있습니다.

1

해결 방법이나 포함 된 정보에 의존하는 것 외에도 브라우저/UA가 RFC2183에서 제공되는 것을 사용하여 multipart/form-data POST를 구현할 경우 이상적인 일반적인 대답이 있다는 점에 유의해야합니다.

그들은 추가 및 수정 날짜와 같은 추가 메타 데이터를 추가하기 위해 Content-Disposition 헤더의 추가 매개 변수를 사용할 수 있습니다.

현재 어떤 브라우저가 있는지 모르겠습니다. 하지만 기술 사양은 거기에 있으며 내가 볼 수있는 한 그것은 RFC2388과 호환됩니다.

관련 문제