J'ai réussi à télécharger des fichiers dans ma base de données SQL Server. Je peux ramener l'information dans un GridView. Je suis incapable de comprendre comment créer un lien hypertexte pour réellement ouvrir le fichier.Comment puis-je récupérer un fichier à partir d'une base de données SQL Server?
Répondre
Vous devez créer une URL qui gère les images et renvoie le contenu de la base de données dans le flux de réponses. Comme il arrive à SQL Saturday #26 j'ai eu une présentation qui a montré exactement cela. Vous pouvez doaloand mes diapositives à partir du lien, allez dans Demo 2 et dans la solution de lotsOfPictures vous trouverez Picture.aspx.cs, qui fait exactement ce que vous demandez:
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
SqlCommand cmd = new SqlCommand(
@"SELECT picture
FROM resized_pictures
WHERE picture_id = @id
AND picture_size = @size;", conn);
cmd.Parameters.AddWithValue("@id", pictureId);
cmd.Parameters.AddWithValue("@size", size);
using (SqlDataReader rdr = cmd.ExecuteReader(
CommandBehavior.SequentialAccess))
{
if (rdr.Read())
{
Response.ContentType = "image/jpeg";
byte[] bytes = new byte[1024];
long offSet = 0;
int countRead = (int) rdr.GetBytes(
0, offSet, bytes, 0, 1024);
while (countRead > 0)
{
Response.OutputStream.Write(bytes, 0, countRead);
offSet += countRead;
countRead = (int)rdr.GetBytes(
0, offSet, bytes, 0, 1024);
}
}
}
}
Les pièces importantes du puzzle sont l'indicateur SequentialAccess transmis au lecteur SqlCommand qui retournera un vrai flux, de sorte que la page ne charge pas toute l'image en mémoire avant de revenir. Pour un serveur hautes performances, vous devez utiliser des opérations asynchrones, comme décrit dans Asynchronous Pages in ASP.NET 2.0.
N'avez pas essayé moi-même, mais que diriez-vous de la diffusion des données dans un fichier temporaire sur le système de fichiers local et de fournir un lien vers ce fichier temporaire?
Normalement, vous utiliseriez le code côté serveur pour envoyer le headers approprié, puis renvoyer simplement le contenu.
A partir du manuel PHP:
// We'll be outputting a PDF
header('Content-type: application/pdf');
// It will be called downloaded.pdf
header('Content-Disposition: attachment; filename="downloaded.pdf"');
// The PDF source is in original.pdf
readfile('original.pdf');
Si votre fichier est stocké dans la base de données, vous stockez probablement comme un tableau de blog ou octet. Dans l'événement de clic de lien hypertexte, vous devez passer le tableau d'octets dans un flux et utiliser un écrivain de flux pour créer le fichier. Ensuite, exécutez le fichier.
- 1. Comment récupérer des images à partir de la base de données SQL Server dans le formulaire WPF? (LINQ, Databinding, SQL)
- 2. Récupération de base de données SQL Server
- 3. Récupérer du texte à partir d'une base de données MySQL
- 4. Restauration directe de la base de données SQL Server à partir d'une autre base de données
- 5. Migration d'une base de données à partir de SQL Server 2000 vers SQL Server 2005
- 6. Comment créer un projet de base de données à partir d'une base de données SQL Server existante?
- 7. Enregistrer des données à partir de contrôles WinForms à une base de données SQL Server
- 8. Fichier de base de données SQL Server et WCF
- 9. Récupérer des types de données à partir d'une instruction SQL arbitraire dans SQL Server 2008
- 10. Comment récupérer des données XML à partir de SQL Server 2005?
- 11. Importer la base de données à partir du fichier PROGRAMMATICALLY?
- 12. Enregistrer l'octet [] dans une base de données SQL Server à partir de C#
- 13. comment générer un fichier dbml à partir de la base de données Sybase?
- 14. Comment récupérer des données externes à partir de MS SQL à partir d'un blog Wordpress?
- 15. Comment importer des données à partir du fichier Excel 2007 xlsx dans la base de données SQL Server 2000?
- 16. sauvegarder la base de données sql de Microsoft SQL Server
- 17. Comment accéder à une base de données SQL Server à partir d'un script Perl sous Linux?
- 18. accéder aux données Oracle à partir de SQL Server
- 19. Stocker et récupérer le fichier .ZIP dans SQL Server 2005
- 20. Comment puis-je obtenir une sauvegarde compatible SQL Server 2005 à partir de la base de données SQL Server 2008?
- 21. SQL Server: Importation de la base de données à partir de .mdf?
- 22. Comment exporter une base de données SQL Server vers MySQL?
- 23. Comment importer vers SQL Server 2005 à partir d'un fichier plat avec des transformations de données
- 24. Ligne aléatoire à partir de la base de données SQL Server utilisant DLINQ
- 25. Séparation d'une base de données SQL Server
- 26. Protection de base de données SQL Server
- 27. Comment ouvrir un fichier de base de données SQL Server local en dehors de Visual Studio?
- 28. sql server Restaurer la base de données
- 29. Générer XSD à partir de la base de données SQL Server pour importer des données XML
- 30. Comment puis-je créer une base de données SQL Server à partir de Visual Studio?