Rank: Advanced Member
Groups: Member, Administration, Moderator Joined: 7/28/2003(UTC) Posts: 1,659
Thanks: 5 times Was thanked: 76 time(s) in 74 post(s)
|
Please read: ASP.NET code sample to upload to SQL database? The sample is in C#, but I have converted it to VB.NET using Developer Fusion C# to VB converter. Please note, the code is untested. Uploading: Code:<%@ Page Language="VB" AutoEventWireup="true" ValidateRequest="false" Debug="true" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="System.Globalization" %>
<script runat="server">Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim connection As New SqlConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings("ImageUploaderConnectionString").ConnectionString)
Dim command As New SqlCommand("INSERT INTO [ImageUploader].[dbo].[File]([FileName], " & "[ContentType], [Size], [LastModified], [FileData] ,[ThumbnailData]) " & "VALUES (@FileName,@ContentType,@Size, @LastModified, @FileData, " & "@ThumbnailData)", connection)
Dim fileName As New SqlParameter("@FileName", SqlDbType.NVarChar, 100)
command.Parameters.Add(fileName)
Dim contentType As New SqlParameter("@ContentType", SqlDbType.NVarChar, 100)
command.Parameters.Add(contentType)
Dim size As New SqlParameter("@Size", SqlDbType.Int)
command.Parameters.Add(size)
Dim lastModified As New SqlParameter("@LastModified", SqlDbType.DateTime)
command.Parameters.Add(lastModified)
Dim fileData As New SqlParameter("@FileData", SqlDbType.Image)
command.Parameters.Add(fileData)
Dim thumbnailData As New SqlParameter("@ThumbnailData", SqlDbType.Image)
command.Parameters.Add(thumbnailData)
connection.Open()
Try
Dim fileCount As Integer = Int32.Parse(Request.Form("FileCount"))
For i As Integer = 1 To fileCount
'Get source file and thumbnails and save it to DB.
Dim sourceFile As HttpPostedFile = Request.Files("SourceFile_" & i)
Dim thumbnail1File As HttpPostedFile = Request.Files("Thumbnail1_" & i)
fileName.Value = Path.GetFileName(sourceFile.FileName)
'Content-type contains:
'image/jpeg; charset=utf-8; Content-Transfer-Encoding: binary
Dim ct As String = sourceFile.ContentType
Dim ind As Integer = ct.IndexOf(";")
If ind > 0 Then
ct = ct.Substring(0, ind)
End If
contentType.Value = ct
size.Value = sourceFile.ContentLength
'Last modification date of the original Nth file in EXIF-style format:
'YYYY:MM:DD hh:mm:ss
Dim info As New DateTimeFormatInfo()
info.ShortDatePattern = "yyyy:MM:dd HH:mm:ss"
lastModified.Value = DateTime.ParseExact(Request.Form("SourceFileLastModifiedDateTime_" & i), "d", info)
Dim fd As Byte() = New Byte(sourceFile.ContentLength - 1) {}
sourceFile.InputStream.Read(fd, 0, sourceFile.ContentLength)
fileData.Value = fd
Dim td As Byte() = New Byte(thumbnail1File.ContentLength - 1) {}
thumbnail1File.InputStream.Read(td, 0, thumbnail1File.ContentLength)
thumbnailData.Value = td
command.ExecuteNonQuery()
Next
Finally
connection.Close()
End Try
End Sub
</script>
Displaying: Code:<%@ Page Language="VB" AutoEventWireup="true" ValidateRequest="false" Debug="true" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="System.Globalization" %>
<script runat="server">Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim sql As String
If Not [String].IsNullOrEmpty(Request.QueryString("t")) Then
sql = "SELECT ThumbnailData As [Data], FileName, ContentType FROM [File] WHERE ID = @ID"
Else
sql = "SELECT FileData As [Data], FileName, ContentType FROM [File] WHERE ID = @ID"
End If
Dim connection As New SqlConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings("ImageUploaderConnectionString").ConnectionString)
Dim command As New SqlCommand(sql, connection)
command.Parameters.AddWithValue("@ID", Int32.Parse(Request.QueryString("id")))
connection.Open()
Try
Dim reader As SqlDataReader = command.ExecuteReader()
If reader.Read() Then
Response.ContentType = reader("ContentType").ToString()
Response.AppendHeader("Content-Disposition", [String].Format("attachment; filename={0}", HttpUtility.UrlEncode(reader("FileName").ToString()).Replace("+", "%20")))
Dim data As Byte() = DirectCast(reader("Data"), Byte())
Response.OutputStream.Write(data, 0, data.Length)
End If
reader.Close()
Finally
connection.Close()
End Try
End Sub
</script>
Edited by user Wednesday, February 10, 2010 3:49:09 AM(UTC)
| Reason: Not specified |
Best regards, Fedor Skvortsov
|