Как сохранить файл изображения после загрузки файла изображения в ColdFusion

Я довольно новичок в Coldfusion, и мне трудно понять, как разрешить пользователям загружать изображения в моей форме

В настоящее время мне удалось найти следующий код, который будет загружать изображение в Coldfusion:

<cfparam name="form.fileUpload" default="">
​
<cfif len(trim(form.fileUpload))>
  <cffile action="upload"
     fileField="fileUpload"
     destination="C:\docs">
  <p>Thankyou, your file has been uploaded.</p>
</cfif>
​
<form enctype="multipart/form-data" method="post">
  <input type="file" name="fileUpload" /><br />
  <input type="submit" value="Upload File" />
</form>

Хотя это дает мне представление о том, как подойти к моей проблеме, я все еще не уверен в следующем:

Вместо destination="C:\docs" сохраняя файл на диске, я хотел бы иметь возможность загрузить загруженное изображение на электронную почту. Причина в том, что как только пользователь завершит и отправит форму, электронное письмо будет отправлено пользователю, который отправил запрос, и пользователю, который будет назначен при создании карты.

Как мне этого добиться? Любые предложения и примеры будут с благодарностью

1 ответ

Решение

Использование CFMAILPARAM с remove="yes", Вы также можете указать имя файла в письме. Полный пример:

<cfmail
    to="the@recipient.com"
    subject="#application.companyName# Contact Submission"
    type="html"
    from="#form.email#">

    <!--- WAS A FILE UPLOADED? --->
    <cfif isDefined("form.attachment") and form.attachment neq ''>
        <!--- SAVE THE FILE --->
        <cffile action="upload" fileField="attachment" destination="#expandPath('./')#" nameConflict="Overwrite">
        <!--- ATTACH TO EMAIL, THEN DELETE IT --->
        <cfmailparam
            disposition = "attachment"
            file = "#expandPath('./' & cffile.serverfile)#"
            remove = 'yes'>
        <!--- MAKE THE FILE NAME A FORM FIELD --->
        <cfset form.attachment = cffile.serverfile>
    </cfif>

    <html>
    <body>
        <cfset form.URL = cgi.http_referrer>
        <table border="1" cellspacing="0" cellpadding="3">
            <tr>
                <th>Field</th>
                <th>Value</th>
            </tr>
            <cfloop list="#form.fieldnames#" index="f">
                <tr>
                    <td nowrap="nowrap" valign="top">#replace(f, '_', ' ', 'all')#</td>
                    <td>#form[f]#</td>
                </tr>
            </cfloop>
        </table>
    </body>
    </html>
</cfmail>
Другие вопросы по тегам