Eh bien, pour télécharger sur le serveur Web, vous avez juste besoin d'un <input type="file" .../>
. À ASP.NET, cela devrait être disponible dans la collection Request.Files
.
Dans SQL Server, vous voulez un varbinary(max)
(ou image
dans les versions antérieures).
La grande question avant de les pousser dans SQL Server est: quelle est leur taille? Si elles ne sont pas massives, vous pouvez les traiter comme byte[]
; juste tampon à partir du InputStream
et envoyer. Voici une façon assez générique de mise en mémoire tampon un Stream
à un seul byte[]
:
byte[] buffer = new byte[1024];
int bytesRead;
MemoryStream ms = new MemoryStream();
while ((bytesRead = inputStream.Read(buffer, 0, buffer.Length)) > 0)
{
ms.Write(buffer, 0, bytesRead);
}
byte[] data = ms.ToArray();
Pour les fichiers massifs (qui peut-être ne font pas partie du db sauf si vous utilisez les extensions FILESTREAM SQL 2008), vous voulez le morceau. Here's an old reply J'ai utilisé pour le découpage (avant SQL 2005) - mais il montre l'idée globale.
Salut Marc, j'utilise le type 'image' dans SQL05 pour mon application mais je ne savais pas que ce n'était pas le type préféré. Pourquoi 'varbinary (max)' est-il plus approprié? –
Voir: http://msdn.microsoft.com/fr-fr/library/ms187993(SQL.90).aspx –