It's been a while since I used this, but it should work.  Make sure you
enable BLOB support on the CF datasource for this connection.  Also,
make sure you have a field with a datatype of "Image".  This was built
for SQL Server 2000.

GetFile.cfm
-----------
<cfsetting enablecfoutputonly="Yes">

<cfquery name="variables.q" datasource="DSN">
SELECT
        fileName
        ,contentType
        ,contentSubType
        ,binaryContent
FROM
        TestUpload
WHERE
        id = <cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#URL.id#">
</cfquery>

<cfheader name="content-disposition" value="attachment;
filename=#variables.q.fileName#">

<cfcontent
type="#variables.q.contentType#/#variables.q.contentSubType#">

<cfoutput>#ToString(variables.q.binaryContent)#</cfoutput>


UploadForm.cfm
--------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
        <title>File Upload</title>
</head>

<body>

<form action="UploadAction.cfm" name="uploadForm" method="post"
enctype="multipart/form-data">
<input type="file" name="uploadFile">
<input type="submit" name="btnUpload" value="Upload File">
</form>

<cfquery name="variables.list" datasource="DSN">
SELECT
        id
        ,fileName
        ,contentType
        ,contentSubType
        ,fileSize
FROM
        TestUpload
ORDER BY
        id
</cfquery>

<table border="1">
<cfoutput query="variables.list">
        <tr>
                <td>#variables.list.id#</td>
                <td><a
href="GetFile.cfm?id=#variables.list.id#">#variables.list.fileName#</a><
/td>
                <td>#variables.list.contentType#</td>
                <td>#variables.list.contentSubType#</td>
                <td
align="right">#NumberFormat(variables.list.fileSize)#</td>
        </tr>
</cfoutput>
</table>

</body>
</html>


UploadAction.cfm
----------------
<cffile action="upload" fileField="form.uploadFile"
destination="#ExpandPath(".")#" nameConflict="MakeUnique">

<cfdump var="#cffile#">

<cffile action="readBinary"
file="#cffile.serverDirectory#\#cffile.serverFile#"
variable="variables.myFile">

<p>Length of variable: <cfoutput>#Len(variables.myFile)#</cfoutput></p>
<p>IsBinary? <cfoutput>#IsBinary(variables.myFile)#</cfoutput></p>

<cfquery name="insertFile" datasource="DSN">
INSERT INTO TestUpload
        (
                fileName
                ,contentType
                ,contentSubType
                ,binaryContent
                ,fileSize
        )
VALUES
        (
                <cfqueryparam cfsqltype="CF_SQL_VARCHAR"
value="#cffile.serverFile#">
                ,<cfqueryparam cfsqltype="CF_SQL_VARCHAR"
value="#cffile.contentType#">
                ,<cfqueryparam cfsqltype="CF_SQL_VARCHAR"
value="#cffile.contentSubType#">
                ,<cfqueryparam cfsqltype="CF_SQL_BLOB"
value="#variables.myFile#">
                ,<cfqueryparam cfsqltype="CF_SQL_INTEGER"
value="#cffile.fileSize#">
        )
</cfquery>


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Find out how CFTicket can increase your company's customer support 
efficiency by 100%
http://www.houseoffusion.com/banners/view.cfm?bannerid=49

Message: http://www.houseoffusion.com/lists.cfm/link=i:4:189566
Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4
Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4
Donations & Support: http://www.houseoffusion.com/tiny.cfm/54

Reply via email to