我需要循环遍历路径名和图像名称列表,并在更改文件大小并将其存储到服务器之前验证文件是否存在且是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
和文件扩展名
答案 0 :(得分:5)
我通常使用cfhttp
来读取图像并验证我是否拥有它,然后转换为有效的cfimage
对象并进行操作。您可以在this question的答案中看到我的流程。
答案 1 :(得分:2)
使用cfimage从URL读取文件。将源设置为该URL。然后,您可以在本地将其写入磁盘。
代码示例:
<cfset imageData = ImageRead("http://tutorial28.learncf.com/img/bgHead.png") />
<cfimage action="write" source="#imageData#" destination="#expandPath('test.png')#" />