Một khách hàng muốn tài liệu Word được lưu vào cơ sở dữ liệu mySQL mặc dù tôi tranh luận chống lại. Các tài liệu không được đặc biệt lớn, không quá 1 MB. Tôi đã kích hoạt BLOB trong quản trị CF và thiết lập bộ đệm blob đến 1.000.000Làm thế nào để lưu trữ tài liệu Word dưới dạng BLOB trong mySQL với Coldfusion
Dưới đây là SQL của tôi
<cfset newMessageID=1569>
<cfset fileName="c:\temp\0.doc">
<cffile action = "readbinary"
file = "#fileName#"
variable = "fileData">
<cfquery name="addFile" datasource='#application.dsn#'>
INSERT into files (fileID, fileData)
Values (#newMessageID#, <cfqueryparam value="#fileData#" cfsqltype="CF_SQL_BLOB">)
</cfquery>
tôi nhận được "Dữ liệu cắt ngắn: Dữ liệu quá dài cho cột 'fileData' tại dòng 1" lỗi. Trường dữ liệu trong bảng tệp được đặt chắc chắn là blob. Tôi đang làm gì sai?
CF 9,01, mySQL 5.4
Tôi đang làm gì sai
Nghĩ bạn cần bọc '# fileData #' trong 'ToBase64()' - xem tài liệu tại đây: http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=Tags_f_08.html Đọc sử dụng 'BinaryEncode () 'để chuyển đổi nó trở lại: http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=functions_a-b_31.html#4989676 – orangepips
Tôi đã thử điều đó rồi. Nếu tôi chỉ đơn giản là chuyển đổi sang Base64 nó ném một lỗi cast với cfqueryparam của tôi. Nếu tôi chạy mà không có cfqueryparam tôi quay trở lại "dữ liệu quá dài cho cột 'filedata'" – Saul
@Saul - Những loại 'blob'? Có nhiều loại khác nhau dài, trung bình, ... http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html và http://dev.mysql.com/doc/refman/5.0 /en/blob.html – Leigh