I am trying to upload files to a database and then let the user download them again.
But when I upload a small file, it seems like only few kB actually make it into the database. The progress bar shows up for a split second only and then disappears. The entry is written is to the database but the binary content is too small.
When I upload a large file (e.g. 10 MB), I get a "page cannot be displayed" error.
Any idea? Thanks so much! s.
Here's some code:
aspx:
<
telerik:RadUpload ID="RadUpload" runat="server" Skin="Telerik" InitialFileInputsCount="1" Width="620px" ControlObjectsVisibility="None" InputSize="100" OverwriteExistingFiles="True" />
cs:
protected void SaveButton_Click(object sender, EventArgs e) |
{ |
if (RadUpload.UploadedFiles.Count > 0) |
{ |
// Obtain the USER ID from the Session |
this.userid = HttpContext.Current.Session["USERID"].ToString(); |
if (String.IsNullOrEmpty(this.userid)) |
this.userid = SATConfiguration.LocalUser; |
// Obtain the description and clear it of "junk" |
this.description = Regex.Replace(this.DescriptionTextBox.Text, "[\t\r\n\v\a\b\f\0\\\'\"]", String.Empty, RegexOptions.Compiled); |
// Get the file and its name |
file = RadUpload.UploadedFiles[0]; |
filefilename = file.GetName(); |
//Read the file |
bytes = new byte[file.InputStream.Length]; |
file.InputStream.Read(bytes, 0, (int)file.InputStream.Length); |
// Call the stored procedure AddAttachment with its parameters |
using (SqlConnection conn = new SqlConnection(SATConfiguration.SatConnectionString)) |
{ |
try |
{ |
// Open a new connection |
conn.Open(); |
// Create a command object identifying the stored procedure |
SqlCommand cmd = new SqlCommand("AddAttachment", conn); |
// Set the command object so it knows to execute a stored procedure |
cmd.CommandType = CommandType.StoredProcedure; |
// Add parameters to command, which will be passed to the stored procedure |
cmd.Parameters.AddWithValue("@userid", this.userid); |
cmd.Parameters.AddWithValue("@caseid", this.caseid); |
cmd.Parameters.AddWithValue("@filename", this.filename); |
cmd.Parameters.AddWithValue("@description", this.description); |
cmd.Parameters.AddWithValue("@attachment", this.bytes); |
cmd.ExecuteNonQuery(); |
cmd.Dispose(); |
} |
catch (Exception ex) |
{ |
log.Error("Exception while writing attachment to database", ex); |
} |
finally |
{ |
// close the connection |
conn.Close(); |
} |
} |