2012-11-28 3 views
1

그래, 이건 절름발이지만 내 웹 응용 프로그램에 대한 자산을 제공하는 파일/ftp 서버가 있습니다. 클라이언트는 응용 프로그램을 시작하기 전에 ftp 서버를 설정합니다.ColdFusion ... CFLOOP 내에서 CFHTTP 호출 수행

내 앱에 이미지를 표시하면 잘 작동합니다. 비록 그것이 크로스 도메인입니다. 이제 고객은 각 테스트에 대해 모든 자산을 가져 와서 zip 파일로 묶을 수 있기를 원합니다. 아 그리고 그들은 우리가 CF7를 사용하고 있도록 업그레이 드하지 않습니다 !!

좋아요. 그럼 이미지 목록을 만든 다음 루프를 반복하고 루프 내부에서 cfhttp를 호출합니다. 내가 설정 한 임시 디렉토리에 이미지를 작성한 다음 전체 지긋 지긋한 것을 압축하십시오. cfhttp 호출을 제외하고 작동합니다. 나는 첫 번째 이미지를 얻은 다음 아무 것도 얻지 못한다.

<cfset imageList = "image_01.png,image_02.png" /> 

<cfloop index="strImage" list="#imageList#" delimiters=","> 
    <cfhttp method="GET" url="#theImgPath##strImage#" path="#TempPath##OSdelim#images" result="objGet" /> 
</cfloop> 

첫 번째 이미지는 두 번째 이미지가 서버에 표시됩니다.

내가 잘못하고 있다면 어떤 생각이 드나요?

+2

문제를 해결하려면 이미지 순서를 전환하여 다른 이미지를 가져 오는지 확인하십시오. –

+0

내가 할 수 있는지 알 겠어. 목록은 xml 데이터를 구문 분석하여 실제로 생성됩니다. 정말 못 생기는 코드. :) 쓰레기를 분석하고 목록을 추가하십시오. 누군가 cfhttp에 전달하기 전에 trim()을 수행해야한다고 말 했으므로이를 시도 할 것입니다. 펑키하지만 cfhttp 호출 직후에 objGet 결과를 덤프하면 루프가 반복 될 때마다 데이터가 반환됩니다. –

+0

XML에서 imageList를로드 중이므로 루프를 실행하기 전에 목록에 을 입력하여 예상 한 내용을 확인하십시오. –

답변

0

내가 좋아하는 뭔가를 시도 할 것 :

<!--- Lose the forward slash at the end, CF isn't XHTML ---> 
<cfset imageList = "image_01.png,image_02.png"> 

<cfloop index="strImage" list="#imageList#" delimiters=","> 
    <cfset fileName = strImage> 
    <cfif not fileExists(TempPath & OSdelim & "images" & OSdelim & strImage)> 
     <cfhttp method="get" getAsBinary="yes" url="#theImgPath##strImage#" path="#TempPath##OSdelim#images" file="#localfile#"> 
     downloading... <br /> 
    <cfelse> 
     <cfoutput>#TempPath# #OSdelim# images #strImage# already exists</cfoutput><br /> 
    </cfif> 
</cfloop> 

코드는 안된입니다,하지만 난에 (작동, 또는 적어도 당신에게 당신이 경로를 잘못 어디로 가는지 잘 이해를 제공해야합니다 생각한다 경우)

+0

흠, 나는 경로가 문제라고 생각하지 않습니다. 서버에 이미지를 저장할 위치에 대한 경로가 정확하도록 한 파일을 얻습니다. –

+1

내 코드를 사용해 보셨습니까? –

+0

내가 그랬어! 어떤 이유로 파일에 "# localfile #"이라는 파일을 사용하지 말라고 말한 이유는 무엇이든지 요청의 이름을 따서 명명 되었기 때문입니다. 그래서 file = "# strImage #"을 추가 했으니 정말 고마워요 !! –