J'ai un simple (par exemple) script pour télécharger un fichier dans la base de données (Oracle, si elle importe):Passer un grand BLOB à une procédure stockée
<cfscript>
param string filename;
if (FileExists(filename))
{
result = new StoredProc(
datasource = "ds",
procedure = "FILE_UPLOAD",
result = "NA",
parameters = [
{ value = FileReadBinary(filename), type = "in", cfsqltype = "CF_SQL_BLOB" }
]
).execute();
}
</cfscript>
Cependant, les ColdFusion CFML Reference états pour FileReadBinary(filepath)
:
Remarque: Cette action lit le fichier dans une variable de la portée Variables locale. Il n'est pas destiné à être utilisé avec des fichiers volumineux, tels que des journaux, car ils peuvent entraîner la fermeture du serveur.
Si je ne devais pas utiliser FileReadBinary(filepath)
, comment télécharger un fichier volumineux (0.5 - 1Tb)?
De toute façon, vous ne devriez pas charger un fichier de cette taille via une interface Web. La requête expirera longtemps avant d'être téléchargée. Peu importe combien de temps vous remplacez le délai d'attente de la demande, cela semble avoir besoin d'une solution différente comme le téléchargement du fichier sur un serveur FTP, en dehors de CF et d'un autre processus chargé dans Oracle. –
Je suis d'accord que ce n'est pas un usage typique, mais ne va sûrement pas échouer. Je développe une application produisant des centaines de réponses Mbytes pour les requêtes web, et ça marche bien. Bien sûr, les clients et le serveur sont dans le même LAN, mais je suppose que c'est pareil dans ce cas. – Galcoholic