2009-12-11 6 views
2

나는 말한다 요구 사항을 가지고, 파일이있을 수 있으며 읽을 수 없습니까?

If file exists and is not readable then Update in DB with 
file path and some Status. 

그것은 파일이 존재하고 읽을 수 없습니다 가질 수 있습니까?

그렇습니다, coldfusion 이러한 유형의 파일을 통해 식별하는 방법 내가 존재하는지 여부는 알 수 있지만 알고 싶습니다. 어떻게 식별 할 수 있습니까? 읽기 가능하거나 아니요?

내가 Windows 서버와 ColdFusion을 사용하고 8 개

감사합니다,

+2

"읽을 수있는"이란 무엇을 의미합니까? JPEG는 메모장에서 읽을 수 없지만 이미지 뷰어에서 읽을 수는 없습니다. 파일이 손상되었는지 확인하려고합니까? 필자는 기껏해야 파일의 MIME 형식을 얻을 수있을 것이라고 생각합니다. "판독 가능"이라는 더 나은 정의가 필요합니다. – ale

+2

@Al Everett : 명백한 대답은 파일 시스템 사용 권한을 다룹니다. – Powerlord

+0

그리 분명하지 않습니다. – ale

답변

4

GetFileInfo(path)을 사용하면 파일 크기와 읽기 및 쓰기 권한이 활성화되어 있는지 여부를 알 수 있습니다. 또한 '유형'을 반환하지만 MIME 형식이 아닌 단순히 '파일'대 '폴더'일뿐입니다.

예 :

<!--- Check if file exists and is not readable ---> 
<cfif fileExists(myFilePath) AND NOT GetFileInfo(myFilePath).canRead> 
    <!--- then Update in DB with file path and some Status ---> 
</cfif> 

귀하의 요구 사항은 당신이 파일 형식을 검증하고 파일을 열 수뿐만 아니라 능력이 있다는 것을 가정하면

다음, 당신이 필요합니다 : 사용

<cfset test = GetFileInfo(myFilePath)> 
<cfdump var="#test#"> 

예 질문을 업데이트하여 테스트해야하는 파일 형식을 나열하여 해당 부분을 도울 수 있도록하십시오. 일부 유형은 Coldfusion에서 유효성을 검사 할 수 있으며, 일부 유형은 일부 Java를 필요로 할 수 있습니다.

+0

댄, 내가 뭘 찾고있어, 고마워. – CFUser

3

그것은 파일이 존재 가능하지만, 당신이 그것을 읽을 수있는 권한이 없습니다. 지금까지 ColdFusion에서 7까지, 크기 등의 정보 파일에 대한 마지막으로 수정 한 날짜 등을 찾을 수있는 좋은 방법이 없었습니다 -

GetFileInfo (파일 경로) :

나는 this을 발견했다. 그렇게 할 수있는 유일한 방법은 cfdirectory 태그를 사용하여 디렉토리를 나열하고 그 디렉토리에서 쿼리를 가져온 다음 원하는 파일을 클릭하고 필요한 메타 데이터를 가져올 때까지 쿼리를 반복합니다. ColdFusion 8의 새로운 기능인 GetFileInfo를 사용하면 파일이나 디렉토리에 대한 모든 메타 데이터를 쉽게 얻을 수 있습니다. 이것은 아래에서 설명하는 구조체를 반환합니다.

  • name - 지정한 파일/디렉토리의 이름입니다. 이는 파일 이름 일뿐 절대 경로는 아닙니다.
  • 경로 - 파일/디렉토리의 전체 경로입니다.
  • 상위 - 상위 디렉토리의 전체 경로입니다.
  • 유형 - 파일 경로가 디렉토리 인 경우 "directory"else "file".
  • 크기 - 파일 크기 (바이트).
  • lastmodified -이 파일/디렉토리가 마지막으로 수정 된 날짜 시간.
  • canRead -이 파일/디렉토리에 '읽기'권한이있는 경우 "true"입니다. "false"그렇지 않으면.
  • canWrite -이 파일/디렉토리에 '쓰기'권한이있는 경우 "true"입니다. "false"그렇지 않으면.
  • isHidden -이 파일/디렉토리가 숨겨져 있으면 true입니다. "false"그렇지 않으면.
+0

MX7을 사용하면 항상 동일한 정보를 반환하는 Java 코드를 사용할 수 있습니다. 그러나 나는 이것을 달성하기위한 쉬운/내장 된 방법이 없다는 데 동의한다. – Leigh

1

이는 파일이 쓰기 용으로 열렸거나 현재 사용자에게 읽기 권한이 없다는 것을 의미합니다.

관련 문제