Póngalo en la base de datos, pero el BLOB
el tipo de datos probablemente no sea suficiente. El MEDIUMBLOB
normalmente es suficiente.
BLOB, TEXT L + 2 bytes, where L < 216
MEDIUMBLOB, MEDIUMTEXT L + 3 bytes, where L < 224
LONGBLOB, LONGTEXT L + 4 bytes, where L < 232
Lo he usado varias veces con muy buenos resultados. Asegúrese de guardar el archivo de archivo también, ya que hace que sea más fácil recuperarlo. No estoy seguro si se aplica a C# como se aplica a PHP.
Si usa declaraciones preparadas con parámetros, los datos se escaparán automáticamente AFAIK.
Además, no puedo ver ninguna razón real de por qué la base de datos en sí se volvería lenta al almacenar este tipo de datos en ella. El principal cuello de botella será, por supuesto, la transferencia de los datos. También MySQL a veces es restrictivo sobre la longitud máxima de las consultas y las respuestas en particular.
Una vez que lo tienes funcionando, es bastante bueno, especialmente cuando se trata de muchos archivos pequeños. Para una pequeña cantidad de archivos grandes, este enfoque no tiene sentido, es mejor usar algún sistema de copia de seguridad para manejar los archivos movidos/eliminados.