Могу ли я использовать cffile action=upload Coldfusions с целевым URL-адресом изображения?

Мне нужно перебрать список имен путей и изображений и убедиться, что файл существует и является jpg/png, прежде чем изменять его размер и сохранять его на сервере.

Я хочу использовать это:

   <cffile result="upload" action="upload" accept="image/jpeg, image/png" destination="#tempDirectory#" nameconflict="overwrite" />
    <cfset testFilePath = tempDirectory & upload.serverFile>
    <cfimage name="tempFile" action="read" source="#testFilePath#" />
    <cfif NOT isImageFile( testFilePath ) >
        <cfset fileDelete( testFilePath ) />
        <cfthrow type="FileNotFound" message="#tx_settings_icons_error_img#" />
    <cfelseif NOT listfindnocase(allow, upload.serverfileext) >
        <cfset fileDelete( testFilePath ) />
        <cfthrow type="FileNotFound" message="#tx_settings_icons_error_file#" />
    </cfif>

Но моя проблема в том, что я не знаю, как загрузить файл с такого пути, как

 http://www.some.com/folder/image.jpg

Вопрос:
Могу ли я просто read создать изображение, выполнить проверку и затем сохранить его на диск, или мне нужно сначала загрузить изображение. Мне придется просмотреть список из 500 изображений, и я читаю, что cffile action="read" не следует использовать с большими файлами. Что может быть альтернативой проверке файлов изображений на правильный тип, isImage и расширение файла?


person frequent    schedule 09.08.2012    source источник


Ответы (2)


Обычно я использую cfhttp, чтобы прочитать изображение и убедиться, что оно у меня есть, затем преобразовать в допустимый объект cfimage и затем выполнить свои манипуляции. Вы можете увидеть мой процесс в ответе на этот вопрос.

person Dan Short    schedule 09.08.2012

Используйте cfimage для чтения файла с URL-адреса. Установите источник в качестве этого URL. Затем вы можете записать это на диск локально.

Пример кода:

<cfset imageData = ImageRead("http://tutorial28.learncf.com/img/bgHead.png") />
<cfimage action="write" source="#imageData#" destination="#expandPath('test.png')#" />
person Paul    schedule 09.08.2012