답변
나는 CFFILE를 호출하기 전에 찾을 수있는 방법을 모르겠지만, 해결 방법이있을 수 있습니다.
<cffile action="upload">
으로 전화 할 경우 result="variable"
을 사용하여 결과를 지정할 수 있습니다. 따라서 업로드 파일을 대상과 함께 임시 파일로 호출하십시오. result 변수는 클라이언트 컴퓨터에있는 파일의 이름 인 member clientFile을 포함하는 struct입니다.
이제 <cffile action="move">
을 사용하여 원본 파일 이름과 관련된 작업을 수행 할 수 있습니다.
답변 주셔서 감사합니다 ... 우리는이 솔루션을 유일한 방법으로 생각했습니다. 나는이 질문을 더 많은 답변을 위해 열어 둘 것이다. 그러나 나는 당신이 게시 한 것을 훨씬 잘 얻을 수 있다고 생각하지 않는다. – nlaq
여러 개의 ** 파일 업로드 ** 요청을 연속적으로 만들 때 문제가 발생합니다. –
입력 컨트롤에 name 속성이 정의되어있는 경우 파일 이름은 FORM 범위에 있습니다. 예를 들어 :
<cfif not structIsEmpty(form)>
<cfdump var="#form#">
<cfelse>
<html>
<head>
<title>Title</title>
</head>
<body>
<form method="POST" action="#cgi.SCRIPT_NAME#">
<input type="file" name="fileIn" />
<input type="Submit" name="formSubmit">
</form>
</body>
</html>
</cfif>
우리가 원하지 않는 tmp 파일 이름을 제공합니다 ... – nlaq
아빠, 나는 enctype을 중단했습니다. 이제 나 자신을 수정해라. –
또 다른 옵션은 클라이언트 측 코드는 다음 서버 측을 것 파일 이름과 숨겨진 양식 필드를 채울 가질 수 있습니다.
벤 둠의 대답은 일반적으로 어떻게 접근 할 것인가입니다.
네, 우리는 이것도 고려했습니다. 그러나 당신의 인생을 비참하게 만들기 위해 치열한 FireBug를 사용하지 않는 사용자를 믿을 수는 없습니다. 클라이언트 측 var이 거짓말을 찾으면 (일단 사용자가 업로드를하고 실제 파일 이름을 얻으면) 요청을 다시 되돌릴 수 있고 사용자에게 플래그를 지정할 수 있다고 생각합니다.하지만 더 훌륭한 솔루션을 원합니다. 대답 주셔서 감사합니다 :) – nlaq
우리가하는 방법은 다음과 같습니다. 기본적으로 파일 필드와 문자열 필드가 있습니다. 양식을 제출하기 전에 JavaScript가 브라우저에서 파일 이름을 가져옵니다. 분명히 상대방의 파일 이름이 실제로 존재하는지 확인해야합니다 (예 : JavaScript가 비활성화되어 있으면 사용자가 비워 둘 것입니다). 그리고 플랫폼 차이를 처리하기 위해 문자열을 구문 분석해야합니다 (/users/bob/file.jpg
대 C:\Documents and Settings\bob\file.jpg
)
<script>
function WriteClientFileName(){
$('ClientFileName').value = $('ClientFile').value;
}
</script>
<form enctype="multipart/form-data" onsubmit="WriteClientFileName();">
<input type="File" name="ClientFile" id="ClientFile">
<input type="hidden" name="ClientFileName" id="ClientFileName" value="">
<input type="submit">
</form>
덧붙여 말하자면,이 기술은 교차 언어입니다. RoR, PHP, JSP 등에서도 똑같이 작동합니다.
편집 : 사용자가 "치열한 FireBug"를 사용한다면 어떤 문제가 있습니까? Firebug를 가지고 있지 않더라도 파일의 이름을 바꾸고 입력을 변경할 수 있습니다. 게다가 입력 내용의 유효성을 검사하는 것입니까?
ColdFuson, Railo 또는 OpenBD에서 서버에 저장하기 전에 업로드 된 파일의 파일 이름을 알 수있는 방법이 없습니다. 나는 일반적으로 파일을 저장하기 전에 createUUID() 함수를 사용하여 '내'새 파일 이름을 생성합니다.
와우, 나는 위대하고 쉬운 해결책을 발견했다! 작은 자바 스크립트로
이렇게하면 cffile 업로드 및 실제 파일의 임시 파일 이름을 얻을 수 있습니다.
GetPageContext().formScope().getUploadResource('your_file_input_form_name').getName();
어쩌면이뿐만 아니라 어도비 서버에서 작동 : 나는 라일로를 사용하여 원래 파일 이름을 발견하고있어 데이터베이스
<html>
<head>
<script type="text/javascript">
function PassFileName()
{
document.getElementById("fileName").value=document.getElementById("fileUp").value;
}
</script>
</head>
<body>
<form name="form1" method="post" enctype="multipart/form-data" >
File: <input type="file" name="fileUp" id="fileUp" size="20" onchange="PassFileName()" /> <br />
Title: <input type="text" name="Title" id="Title"><br />
<input type="hidden" id="fileName" size="20" name="fileName" />
<input type="submit" name="submit">
</form>
</body>
</html>
에 대한 JPG 이름? 업로드 된 파일의 이름을 어떻게 든 변경하고 두 개의 임시 디렉토리를 통해 이동하려는 경우 (Renaming Files As They Are Uploaded (how CFFILE actually works) 참조)
고마워,이 정확하게 필요합니다. 매력처럼 작동합니다! – Mattijs
참고 사항이 기능은 Adobe ColdFusion이 아닌 Railo에서만 작동합니다. Adobe ColdFusion에서 이것을 수행하는 방법에 대한 내 대답을 참조하십시오. –
예 가능합니다. 당신은 CFFILE 태그를 사용하기 전에 클라이언트 파일 이름을 잡기 위해이 기능을 사용할 수 있습니다 : 여기
<cffunction name="getClientFileName" returntype="string" output="false" hint="">
<cfargument name="fieldName" required="true" type="string" hint="Name of the Form field" />
<cfset var tmpPartsArray = Form.getPartsArray() />
<cfif IsDefined("tmpPartsArray")>
<cfloop array="#tmpPartsArray#" index="local.tmpPart">
<cfif local.tmpPart.isFile() AND local.tmpPart.getName() EQ arguments.fieldName> <!--- --->
<cfreturn local.tmpPart.getFileName() />
</cfif>
</cfloop>
</cfif>
<cfreturn "" />
</cffunction>
더 많은 정보는 : http://www.stillnetstudios.com/get-filename-before-calling-cffile/
그것은 작동합니다! 고맙습니다. 요청에서 그런 기본적인 것을 얻는 것이 어렵다는 것은 당연한 일이지만 CF 개발자의 삶입니다. –
멋진 기능! 감사. ColdFusion 10에서 작동하도록 확인되었습니다. – PhilNicholas
- 1. 업로드하기 전에 파일 소품 확인하기
- 2. 업로드하기 전에 게시 매개 변수 가져 오기
- 3. BPL 가져 오기 파일 이름
- 4. BufferedImage에서 파일 이름 가져 오기
- 5. 디렉토리로 업로드하기 전에 이미지 이름 바꾸기
- 6. 여러 파일 업로드 필드에서 파일 이름 가져 오기
- 7. Asp.Net 업로드하기 전에 파일 크기 확인
- 8. 업로드하기 전에 파일 크기를 확인하는 다른 방법
- 9. 업로드하기 전에 파일 크기를 확인하는 방법은 무엇입니까?
- 10. 가져 오기 전에 csv 파일 수정
- 11. 업로드하기 전에 비디오를 저장해야합니다.
- 12. regexp URL에서 파일 이름 가져 오기
- 13. 업로드 스크립트에서 파일 이름 가져 오기
- 14. 파일 이름 가져 오기 및 이동
- 15. 현재 활성 창의 파일 이름 가져 오기
- 16. FileUpload 컨트롤에서 파일 이름 가져 오기 -
- 17. PHP에서 wget에서 파일 이름 가져 오기
- 18. 인쇄 할 때 파일 이름 가져 오기
- 19. 가상 URL에서 파일 이름 가져 오기?
- 20. Flex : 자체 SWF 파일 이름 가져 오기?
- 21. 업로드하기 전에 파일을 압축하여 http :
- 22. 지속성 이름 가져 오기
- 23. 데이터베이스 이름 가져 오기?
- 24. 파일 목록 가져 오기
- 25. 파일 업로드 컨트롤에서 데이터베이스에서 파일 이름 가져 오기
- 26. 파일 [] 배열의 첫 번째 파일 이름 가져 오기
- 27. 플랫 파일 가져 오기!
- 28. 아파치 서버에 파일 업로드하기
- 29. TypeMap에서 인스턴스 이름 가져 오기 이름
- 30. 업로드하기 전에 이미지 크기를 확인하십시오. django
방법은 매우 ColdFusion에서의 일반적인 같은 기본 기능을 가지고 있지. – Teekin