Форум программистов, компьютерный форум, киберфорум
C#: ASP.NET MVC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/25: Рейтинг темы: голосов - 25, средняя оценка - 4.52
18 / 18 / 8
Регистрация: 10.02.2013
Сообщений: 250

Выдает ошибку: Входные данные не являются действительной строкой Base-64

09.12.2013, 12:47. Показов 5410. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго дня уважаемые форумчане!
Возник такой вопрос. Пишу маленький сайтик (пока только этому учусь) и мне выдает ошибку:Входные данные не являются действительной строкой Base-64, поскольку содержат символ в кодировке, отличной от Base 64, больше двух символов заполнения или недопустимый символ среди символов заполнения.
причем изображение добавить в БД получается вроде как без вопросов, вопросы такие начинаются когда я пытаюсь отредактировать объект имеющий изображение....там даже перехода к контроллеру не происходит.
вот фрагменты кода:
1.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 public class Product
    {
        [HiddenInput(DisplayValue = false)]
        public int ID { get; set; }
        [Required]
        public string Name { get; set; }
        [HiddenInput(DisplayValue = false)]
        [Required]
        [Range(0.01, double.MaxValue, ErrorMessage = "Введите пожалуйста верное значение!")]
        public decimal Price { get; set; }
 
        public byte[] ImageData { get; set; }
        [HiddenInput(DisplayValue = false)]
        public string ImageType { get; set; }
    }
2.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
[HttpGet]
        public ActionResult ProductOperation(Product prod)
        {
            OperationalMemory operational = reposytory.OperationalMemories.FirstOrDefault(c => c.ProductID == prod.ID);
            var model = new ProductOperationMemory()
            {
                Product = prod,
                OperationalMemory = operational
            };
            return View(model);
        }
 
        [HttpPost]
        public ActionResult ProductOperation(ProductOperationMemory model, HttpPostedFileBase image)
        {
            if (ModelState.IsValid)
            {
                if (image != null)
                {
                    model.Product.ImageType = image.ContentType;
                    model.Product.ImageData=new byte[image.ContentLength];
                    image.InputStream.Read(model.Product.ImageData, 0, image.ContentLength);
                }
                reposytory.SaveOperationMemory(model.OperationalMemory);
                reposytory.SaveProduct(model.Product);
                TempData["mesage"] = string.Format("Объект \"{0}\" успешно сохранен!", model.Product.Name);
                return View("AdminPage");
            }
            return View();
        }
3.
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
@model Models.ProductOperationMemory
 
@{
    ViewBag.Title = "ProductOperation";
    Layout = "~/Views/Shared/_AdminLayout.cshtml";
}
 
 
@using (Html.BeginForm("ProductOperation","MainAdministrator",
    FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    @*<fieldset>*@
        <legend>Операционная память</legend>
        @Html.HiddenFor(p => p.Product.ID)
 
        <div>Наименование</div>
        <div>@Html.EditorFor(p=>p.Product.Name)</div>
       
        <div>Стоимость</div>
        <div>@Html.EditorFor(p=>p.Product.Price)</div>
 
        @Html.HiddenFor(p => p.OperationalMemory.ID)
        @Html.HiddenFor(p => p.OperationalMemory.ProductID)
        <div>Частота</div>
        <div>@Html.EditorFor(p=>p.OperationalMemory.Frequency)</div>
 
        <div>PC-индекс</div>
        <div>@Html.EditorFor(p=>p.OperationalMemory.PCIndex)</div>
 
        <div>Тайминги</div>
        <div>@Html.EditorFor(p=>p.OperationalMemory.Timing)</div>
        
        <div>Тип DDR</div>
        <div>@Html.EditorFor(p=>p.OperationalMemory.TipeDDR)</div>
 
        <div>Примечания</div>
        <div>@Html.EditorFor(p=>p.OperationalMemory.Note)</div>
       
        <div>Изображение</div>
        <div>
            @if (Model.Product.ImageData == null)
            {
                @:None
            }
            else
            {
                <img width="200" height="150" src="@Url.Action("GetImage","MainAdministrator", new {Model.Product.ID})"/>
            }
            <div>Загрузить изображение:
                <input type="file" name="Image"/>
            </div>
        </div>
 
        <p>
            <input type="submit" value="Сохранить"/>
        </p>
    @*</fieldset>*@
}
вот такой вот код....
как и писал выше добавление вроде проходит нормально, по крайней мере в БД ячейки заполняются, но как только пытаюсь отредактировать объект содержащий изображение вылетает сообщение об ошибке. причем расставив точки останова и наблюдаю что в контроллер с HttpGet даже не заходит..сразу ошибку выдает((
Подскажите пожалуйста что делать
За ране огромное спасибо.

Добавлено через 1 час 36 минут
Сейчас еще попутно пробую реализовать удаление из БД и получается так, что обычные данные (без изображения в смысле) удаляет без вопросов, а как только пытаюсь удалить с изображением выдает опять эту ошибку(
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.12.2013, 12:47
Ответы с готовыми решениями:

Входные данные не являются действительной строкой Base-64
Добрый день, возникла такая ошибка, при том что код, вроде правильный: @model MyWebSite.Models.Image @{ ViewBag.Title =...

FormatException: Входные данные не являются действительной строкой Base-64
Здравствуйте! Такая проблема: DropDownlist или ListBox, корочь все на что можно поцепить событие клика и выборки, выдает ошибку со...

OpenPop. Входные данные не являются действительной строкой base-64
Вылетает данное сообщение при выкачивание почты с сервера майла при помощи openPop при том что остальные сообщения выкачиваются нормально,...

6
 Аватар для Сергей 83
98 / 96 / 15
Регистрация: 28.03.2011
Сообщений: 565
09.12.2013, 17:14
тут одновременно сохраняются и изображение и описание. и изображение наверно в базе.
Не лучше ли подход: описание - своя форма, изображение - своя. И изображение хранить в некой папке сайта.
0
18 / 18 / 8
Регистрация: 10.02.2013
Сообщений: 250
09.12.2013, 17:18  [ТС]
гм...тоесть предлагаетет добавлять изображение в отдельном окне? но это немного ведь неудобно....
а насчет изображения я так понял что тут ваш вариант загонять в БД ссылку на адрес нахождения файла.К сожалению я не специалист в этом еще пока, но мне кажется это будет не совсем удобно если переносить БД с сервера на сервер...
Но можно и так попробовать, но вопрос то все равно остается..интересно((
0
 Аватар для Сергей 83
98 / 96 / 15
Регистрация: 28.03.2011
Сообщений: 565
09.12.2013, 17:23
мой вариант проще в реализации. и никаких там дополнительных окон. просто там все аяксом красиво связать
0
18 / 18 / 8
Регистрация: 10.02.2013
Сообщений: 250
09.12.2013, 17:24  [ТС]
да и тем более я всетаки хочу попробовать разместить сайтик это на бесплатном хостинге, с целью поучиться..и мне кажется я не разберусь в какие папки размещать изображения и как туда посылать обращения и получать адрес...

Добавлено через 52 секунды
))) я аякса еще не знаю(..скажем так я ASP.NET только месяц как учу((( так что я мал и глуп....
0
 Аватар для Сергей 83
98 / 96 / 15
Регистрация: 28.03.2011
Сообщений: 565
09.12.2013, 17:28
классический случай "Щас побыстрому изучу ASP.NET"
0
18 / 18 / 8
Регистрация: 10.02.2013
Сообщений: 250
09.12.2013, 17:31  [ТС]
если подскажите что почитать по javascrip и ajax буду премного благодарен

Добавлено через 1 минуту
классического случая как раз то и нет, а сидеть и тупа читать книги ничего не писавши и не разбираясь то же пользы шиш да нишиша...поэтому пишу и учу, что знаю, попутно пытаюсь понять что то из ранее изученного и изучая что-то новое

Добавлено через 51 секунду
на форумах начитался насчет холливара как хранить изображения непосредственно в БД или ссылки в БД на папку с изображениями..и пока склоняюсь к тому что надо в БД
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.12.2013, 17:31
Помогаю со студенческими работами здесь

PostCreate() выдаёт ошибку во время удаления родительского объекта base.OnDie(prejudicial)
Новый объект создаётся во время удаления существующего объекта - error. Откуда начинать искать ошибку?

Определить являются введенные данные числом или строкой
Написать программу о том, что ввёл пользователь (строку или число)

Программа выдает ошибку "не верный логин или пароль", хотя аккаунт добавляется в Account.base
Здравствуйте вот пишу программу и тут возникла проблема регистрирую первый аккаунт всё норм входит а когда регистрирую второй и потом жму...

В действительной матрице 6*9 поменять местами строку с максимальном элементом со строкой с минимальном элемент
В действительной матрице 6*9 поменять местами строку с максимальном элементом со строкой с минимальном элементом.

СМА Hansa PG5510A412 s/n 04454930213108 после нескольких минут выдает ошибку, выдает ошибку
Hansa PG5510A412 s/n 04454930213108 отработала 2 месяца на этом же месте, магазин где брали закрылся. После нескольких минут работы на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru