Как прокрутить запрос и передать один результат за раз, а не все результаты?Зацикливание через cfquery для перемещения файла с ошибкой
Я бегу запрос и с помощью <cfloop>
Переберите результат и для каждого имени файла в запросе, <cffile>
необходимо переместить файл из одной папки в другую следующим образом:
cfquery name="qryGetFilesJustUploaded" datasource="#request.dsn#"> <!--- Limit to filed with pdf file type endings --->
SELECT fileupload
FROM [DevDBServer].[dbo].[upload_many]
WHERE (fileupload Like '%.pdf%') and (needs_compression = '1')
</cfquery>
cffunction name="MoveCompressReturnFile" access="public" returntype="void" description="Moves file to temp folder, compresses it then returns it to its original location">
<!---Lets Loop through and move all files references in query--->
<cfloop query="#qryGetFilesJustUploaded#">
<cffile action="move"
source="C:\inetpub\wwwroot\testingFolder\PDFCompression\pdf\#qryGetFilesJustUploaded.fileupload#"
destination="C:\inetpub\wwwroot\testingFolder\PDFCompression\bin" >
<!--- Now lets compress it--->
<cfexecute name="C:\Program Files (x86)\neeviaPDF.com\PDFcompress\cmdLine\CLcompr.exe"
arguments="C:\inetpub\wwwroot\testingFolder\PDFCompression\bin\#qryGetFilesJustUploaded.fileupload# C:\inetpub\wwwroot\testingFolder\PDFCompression\bin\#qryGetFilesJustUploaded.fileupload# -co -ci jpg -cq 10 -gi jpg -gq 10 -mi jbig2 -mq 1"
outputfile="C:\inetpub\wwwroot\testingFolder\PDFCompression\bin\output.txt"
timeout="250">
</cfexecute>
<!---Now Lets Return the file back to its original folder--->
<cffile action="move"
source="C:\inetpub\wwwroot\testingFolder\PDFCompression\bin\#qryGetFilesJustUploaded.fileupload#"
destination="C:\inetpub\wwwroot\testingFolder\PDFCompression\pdf" >
</cfloop>
</cffunction>
Когда он подходит для запуска первой команды cffile, я получаю сообщение об ошибке, что C: .... C: .... не является допустимым источником, и похоже, что его выполнение - это указание нескольких файлов одновременно, а не хватайте их по одному, пока не закончите захват всех файлов, на которые ссылается запрос. Как это исправить?
Обновление: Код не проходит успешно по результатам запроса. 1. Протестировал код с помощью filename = "document1.pdf", и он работал без проблем, передавая это в метод FindFilePath и возвращая путь к файлу и выполняя оставшуюся часть кода. Однако, если его заменить на filename = "qryGetFilesJustUploaded", каждое из имен файлов в запросе, похоже, не будет успешно передано, поэтому путь к файлу этого файла может быть возвращен.
- Был ли дамп запроса для проверки моего запроса и доступен список файлов.
- Также проверено, существуют ли файлы и что в именах файлов нет нечетного форматирования.
Шаг 1 - посмотреть на ваши данные. В частности, дамп qryGetFilesJustUploaded. –
Можете ли вы использовать функцию expandpath() для установки источника и назначения? – cfprabhu