Суть вопроса: есть папка img, в нее с помощью FileUpload загружается картинка(картинка в папке появляется, но не в обозревателе), далее в обработчике кнопки "Добавить" картинка должна переводиться в бинарный тип и помещаться в БД (тип поля varbinary(max)). НО вылетает ошибка, что нет доступа к файлу, как этот доступ получить?
Проект, который создан в VS 2008 года, работает отлично, а в VS 2015 выкидывает ошибку.
// Создать подключение к базе
string connectionString =
WebConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlConnection connection = new SqlConnection(connectionString);
// Загрузить данные таблицы в DataReader
SqlCommand command = new SqlCommand(
"INSERT INTO Photo_DJ ( Photo, Id_photo_dj_dj, Type_photo) VALUES (@Photo, @Type_Ph, @DJ)",
connection);
Stream fs = null;
try
{
connection.Open();
// Указать параметр
command.Parameters.AddWithValue("@DJ", GVDJ.SelectedValue);
//добавляем рисунок
Byte[] bytes = null;
string contenttype = String.Empty;
fs = (Stream)Session["InputStream_FileUpload"];
BinaryReader br = new BinaryReader(fs);
bytes = br.ReadBytes((Int32)fs.Length);
contenttype = (string)Session["contenttype"];
command.Parameters.Add("@photo", SqlDbType.VarBinary).Value = bytes;
command.Parameters.Add("@typephoto", SqlDbType.NVarChar).Value = contenttype;
// cmd = new SqlCommand("insert into empimage(Name) values('" + "~/Image/" + FileUpload1.FileName + "')", con); con.Open(); cmd.ExecuteNonQuery(); con.Close();
int res = command.ExecuteNonQuery();
fs.Close();
lbl_answerquery.Text = "INSERT ok, count rows affected = " + res;
}
catch (Exception ex)
{
lbl_answerquery.Text = "INSERT error = " + ex.ToString();
}
finally
{
if (fs != null)
fs.Close();
connection.Close();
}