Поток ввода-вывода не работает в функции веб-форм - PullRequest
0 голосов
/ 24 октября 2018

Может кто-нибудь сказать мне, почему я продолжаю получать тайм-аут чтения и записи для этой функции?У меня это как функция кода на нажатие даже с кнопки.Все, что касается данных, выглядит хорошо, пока я не попадаю в секцию потока, и они все еще проходят, но когда я проверяю содержимое объекта Stream после входа в этот объект, он сообщает Read Timeout / Write Timeout: System invalid Operation Exception.

protected void SubmitToDB_Click(object sender, EventArgs e)
        {

            if (FileUploader.HasFile)
            {
                try
                {
                    if (SectionDropDownList.SelectedValue != null)
                    {
                        if (TemplateDropDownList.SelectedValue != null)
                        {
                            // This gets the full file path on the client's machine ie: c:\test\myfile.txt
                            string strFilePath = FileUploader.PostedFile.FileName;
                            //use the System.IO Path.GetFileName method to get specifics about the file without needing to parse the path as a string
                            string strFileName = Path.GetFileName(strFilePath);
                            Int32 intFileSize = FileUploader.PostedFile.ContentLength;
                            string strContentType = FileUploader.PostedFile.ContentType;

                            //Convert the uploaded file to a byte stream to save to your database. This could be a database table field of type Image in SQL Server
                            Stream strmStream = FileUploader.PostedFile.InputStream;
                            Int32 intFileLength = (Int32)strmStream.Length;
                            byte[] bytUpfile = new byte[intFileLength + 1];
                            strmStream.Read(bytUpfile, 0, intFileLength);
                            strmStream.Close();





                            saveFileToDb(strFileName, intFileSize, strContentType, bytUpfile); // or use FileUploader.SaveAs(Server.MapPath(".") + "filename") to save to the server's filesystem.
                            lblUploadResult.Text = "Upload Success. File was uploaded and saved to the database.";
                        }
                    }
                }
                catch (Exception err)
                {
                    lblUploadResult.Text = "The file was not updloaded because the following error happened: " + err.ToString();
                }
            }
            else
            {
                lblUploadResult.Text = "No File Uploaded because none was selected.";
            }
        }

1 Ответ

0 голосов
/ 14 ноября 2018

Попробуйте что-то вроде этого:

using (var fileStream = FileUploader.PostedFile.InputStream)
{
    using (var reader = new BinaryReader(fileStream))
    {
        byte[] bytUpfile = reader.ReadBytes((Int32)fileStream.Length);
        // SAVE TO DB...
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...