Сохранение файла на сервере в Coldfusion, хранение во временном каталоге CF вместо указанного места назначения - PullRequest
0 голосов
/ 06 декабря 2011

Я использую Coldfusion 8 на сервере Ubuntu Linux с Apache и MySQL.Любой загруженный файл сохраняется во временном каталоге Coldfusion: [/opt/coldfusion8/runtime/servers/coldfusion/SERVER-INF/temp/wwwroot-tmp/neotmp17260.tmp] Я, очевидно, хочу, чтобы он был сохранен в / var / www/ cfm3 / images [значение которого # destination #.Я пробовал другие решения, представленные на этом сайте, но они имеют тенденцию переходить на другие решения, которые не решили мое решение.Ниже приведен пример моего кода.

    <cfset destination = expandPath("images") />
<cfif not directoryExists(destination)>
    <cfdirectory action="create" directory="#destination#">
</cfif>
<cfloop from="1" to="#num_users#" index="i">
    <cfoutput>User #i# Photo Upload : 
        <cfif isDefined("#i#")>
            <cffile action="upload"
                    fileField="#i#"
                    accept="image/jpeg, image/gif, image/png" 
                    destination="#destination#"
                    nameConflict="makeUnique"
                    mode = 777>
            <cfdump var="#upload#">
            <p>Thank you, your file has been uploaded.</p>
        </cfif>
        <input type="file" name="#i#" /><br />
    </cfoutput>
</cfloop>

Любая помощь будет принята с благодарностью.: D

Ответы [ 2 ]

3 голосов
/ 06 декабря 2011

У меня есть догадка, проблема заключается в том, как вы создаете переменную destination, предполагая, что она верна (даже после создания), и затем сразу же передаете ее в CFFILE.

См. Аналогичный вопрос (и решение):

Сохранение файла на сервере в ColdFusion

В этом вопросе, связанном выше, ответчик отмечает, что:

Пункт назначения должен быть полным путем, иначе он будет отправлен каталог относительно временного каталога Cold Fusion [sic].

Это поведение очень похоже на то, что вы испытываете - вы хотите, чтобы файл находился в определенной папке, но вместо ошибки он в конечном итоге попадает в каталог «temp».

Я бы получил некоторую информацию о трассировке / отладке в вашем шаблоне, в частности о значении переменной назначения, до того, как он будет передан в CFFILE. Что-то не совсем совпадает с вашим описанием, и это вполне может быть неверный путь или, возможно, разрешения, окружающие его.

0 голосов
/ 06 декабря 2011

Получаете ли вы ошибку, похожую на «загрузка не определена»?Если это так, измените эту строку:

<cfdump var="#upload#">

На это:

<cfdump var="#cffile#">

Если вы не получаете эту ошибку .... какой вывод вы получаете?

edit

Кроме того, лично я бы не назвал ваши поля формы простыми числами.Попробуйте изменить на это:

<cfloop from="1" to="#num_users#" index="i">
    <cfoutput>User #i# Photo Upload : 
        <cfif isDefined("user#i#")>
            <cffile action="upload"
                    fileField="user#i#"
                    accept="image/jpeg, image/gif, image/png" 
                    destination="#destination#"
                    nameConflict="makeUnique"
                    mode = 777>
            <cfdump var="#cffile#">
            <p>Thank you, your file has been uploaded.</p>
        </cfif>
        <input type="file" name="user#i#" /><br />
    </cfoutput>
</cfloop>

Запишите префикс «user» перед именами полей.

...