Форум программистов, компьютерный форум, киберфорум
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/79: Рейтинг темы: голосов - 79, средняя оценка - 4.65
 Аватар для Jocker
1 / 1 / 3
Регистрация: 22.01.2015
Сообщений: 199

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

14.06.2017, 17:19. Показов 15017. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, возникла такая ошибка, при том что код, вроде правильный:
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
@model MyWebSite.Models.Image
 
@{
    ViewBag.Title = "AddImage";
}
 
<h2>AddImage</h2>
 
@using (Html.BeginForm("AddImage", "Portfolio", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    @Html.AntiForgeryToken()
    
    <div class="form-horizontal">
        <h4>Image</h4>
        <hr />
        @Html.ValidationSummary(true, "", new { @class = "text-danger" })
       
        <div class="form-group">
            @Html.LabelFor(model => model.Album, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.Album, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.Album, "", new { @class = "text-danger" })
            </div>
        </div>
 
        <div class="form-group">
            @Html.LabelFor(model => model.Description, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.Description, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.Description, "", new { @class = "text-danger" })
            </div>
        </div>
 
        <div class="form-group">
            @Html.LabelFor(model => model.Image1, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
               <input type="file" id="image1" name="image1"/>
            </div>
        </div>
 
        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <input type="submit" value="Submit" class="btn btn-default" />
            </div>
        </div>
    </div>
}
 
<div>
    @Html.ActionLink("Back to List", "Index")
</div>
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
31
32
33
34
35
36
37
38
39
using MyWebSite.Models;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Mvc;
 
namespace MyWebSite.Controllers
{
    public class PortfolioController : Controller
    {
 
        public ActionResult Portfolio()
        {
            return View();
        }
 
        public ActionResult AddImage()
        {
            Image img = new Image();
            return View(img);
        }
 
        [HttpPost]
        public ActionResult AddImage(Image model, HttpPostedFileBase image1)
        {
            var db = new DBModel();
            if (image1!=null)
            {
                model.Image1 = new byte[image1.ContentLength];
                image1.InputStream.Read(model.Image1, 0, image1.ContentLength);
            }
            db.Images.Add(model);
            db.SaveChanges();
            return View(model);
        }       
    }
}

Так же читал на этом же форуме, что нужно удалить временные файлы "C:\Windows\Microsoft.NET\Framework\v4.0 .30319\Temporary ASP.NET Files", но последняя папка пустая, в чём может быть дело?

Добавлено через 18 секунд
Если нужно будет, могу прикрепить весь проект
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.06.2017, 17:19
Ответы с готовыми решениями:

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

Выдает ошибку: Входные данные не являются действительной строкой Base-64
Доброго дня уважаемые форумчане! Возник такой вопрос. Пишу маленький сайтик (пока только этому учусь) и мне выдает ошибку:Входные данные...

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

6
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18242 / 14156 / 5366
Регистрация: 17.03.2014
Сообщений: 28,846
Записей в блоге: 1
14.06.2017, 17:59
Jocker, в какой именно момент времени возникает исключение? В какой строке? Какой полный текст исключения?
0
 Аватар для Jocker
1 / 1 / 3
Регистрация: 22.01.2015
Сообщений: 199
14.06.2017, 20:54  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
в какой именно момент времени возникает исключение? В какой строке? Какой полный текст исключения?
В момент нажатия кнопки Submit.
Сама студия не выдаёт ошибки, её выдаёт браузер, так что на какой строке идёт сбой не ясно, но в БД данные тоже не поступают.

Ошибка сервера в приложении '/'.

Входные данные не являются действительной строкой Base-64, поскольку содержат символ в кодировке, отличной от Base 64, больше двух символов заполнения или недопустимый символ среди символов заполнения.

Описание: Необработанное исключение при выполнении текущего веб-запроса. Изучите трассировку стека для получения дополнительных сведений о данной ошибке и о вызвавшем ее фрагменте кода.

Сведения об исключении: System.FormatException: Входные данные не являются действительной строкой Base-64, поскольку содержат символ в кодировке, отличной от Base 64, больше двух символов заполнения или недопустимый символ среди символов заполнения.

Ошибка источника:

Необработанное исключение при выполнении текущего веб-запроса. Информацию о происхождении и месте возникновения исключения можно получить, используя следующую трассировку стека исключений.

Трассировка стека:
Кликните здесь для просмотра всего текста
[FormatException: Входные данные не являются действительной строкой Base-64, поскольку содержат символ в кодировке, отличной от Base 64, больше двух символов заполнения или недопустимый символ среди символов заполнения. ]
System.Convert.FromBase64_Decode(Char* startInputPtr, Int32 inputLength, Byte* startDestPtr, Int32 destLength) +12271509
System.Convert.FromBase64CharPtr(Char* inputPtr, Int32 inputLength) +130
System.Convert.FromBase64String(String s) +42
System.Web.Mvc.ByteArrayModelBinder.Bind Model(ControllerContext controllerContext, ModelBindingContext bindingContext) +98
System.Web.Mvc.DefaultModelBinder.GetPro pertyValue(ControllerContext controllerContext, ModelBindingContext bindingContext, PropertyDescriptor propertyDescriptor, IModelBinder propertyBinder) +17
System.Web.Mvc.DefaultModelBinder.BindPr operty(ControllerContext controllerContext, ModelBindingContext bindingContext, PropertyDescriptor propertyDescriptor) +382
System.Web.Mvc.DefaultModelBinder.BindPr operties(ControllerContext controllerContext, ModelBindingContext bindingContext) +101
System.Web.Mvc.DefaultModelBinder.BindCo mplexElementalModel(ControllerContext controllerContext, ModelBindingContext bindingContext, Object model) +55
System.Web.Mvc.DefaultModelBinder.BindCo mplexModel(ControllerContext controllerContext, ModelBindingContext bindingContext) +1197
System.Web.Mvc.DefaultModelBinder.BindMo del(ControllerContext controllerContext, ModelBindingContext bindingContext) +330
System.Web.Mvc.ControllerActionInvoker.G etParameterValue(ControllerContext controllerContext, ParameterDescriptor parameterDescriptor) +338
System.Web.Mvc.ControllerActionInvoker.G etParameterValues(ControllerContext controllerContext, ActionDescriptor actionDescriptor) +105
System.Web.Mvc.Async.<>c__DisplayClass21 .<BeginInvokeAction>b__19(AsyncCallback asyncCallback, Object asyncState) +743
System.Web.Mvc.Async.WrappedAsyncResult` 1.CallBeginDelegate(AsyncCallback callback, Object callbackState) +14
System.Web.Mvc.Async.WrappedAsyncResultB ase`1.Begin(AsyncCallback callback, Object state, Int32 timeout) +128
System.Web.Mvc.Async.AsyncControllerActi onInvoker.BeginInvokeAction(ControllerCo ntext controllerContext, String actionName, AsyncCallback callback, Object state) +343
System.Web.Mvc.Controller.<BeginExecuteC ore>b__1c(AsyncCallback asyncCallback, Object asyncState, ExecuteCoreState innerState) +25
System.Web.Mvc.Async.WrappedAsyncVoid`1. CallBeginDelegate(AsyncCallback callback, Object callbackState) +30
System.Web.Mvc.Async.WrappedAsyncResultB ase`1.Begin(AsyncCallback callback, Object state, Int32 timeout) +128
System.Web.Mvc.Controller.BeginExecuteCo re(AsyncCallback callback, Object state) +465
System.Web.Mvc.Controller.<BeginExecute> b__14(AsyncCallback asyncCallback, Object callbackState, Controller controller) +18
System.Web.Mvc.Async.WrappedAsyncVoid`1. CallBeginDelegate(AsyncCallback callback, Object callbackState) +20
System.Web.Mvc.Async.WrappedAsyncResultB ase`1.Begin(AsyncCallback callback, Object state, Int32 timeout) +128
System.Web.Mvc.Controller.BeginExecute(R equestContext requestContext, AsyncCallback callback, Object state) +374
System.Web.Mvc.Controller.System.Web.Mvc .Async.IAsyncController.BeginExecute(Req uestContext requestContext, AsyncCallback callback, Object state) +16
System.Web.Mvc.MvcHandler.<BeginProcessR equest>b__4(AsyncCallback asyncCallback, Object asyncState, ProcessRequestState innerState) +52
System.Web.Mvc.Async.WrappedAsyncVoid`1. CallBeginDelegate(AsyncCallback callback, Object callbackState) +30
System.Web.Mvc.Async.WrappedAsyncResultB ase`1.Begin(AsyncCallback callback, Object state, Int32 timeout) +128
System.Web.Mvc.MvcHandler.BeginProcessRe quest(HttpContextBase httpContext, AsyncCallback callback, Object state) +384
System.Web.Mvc.MvcHandler.BeginProcessRe quest(HttpContext httpContext, AsyncCallback callback, Object state) +48
System.Web.Mvc.MvcHandler.System.Web.IHt tpAsyncHandler.BeginProcessRequest(HttpC ontext context, AsyncCallback cb, Object extraData) +16
System.Web.CallHandlerExecutionStep.Syst em.Web.HttpApplication.IExecutionStep.Ex ecute() +103
System.Web.HttpApplication.ExecuteStep(I ExecutionStep step, Boolean& completedSynchronously) +155

Информация о версии: Платформа Microsoft .NET Framework, версия:4.0.30319; ASP.NET, версия:4.6.1637.0
0
 Аватар для sau
2773 / 2073 / 386
Регистрация: 22.07.2011
Сообщений: 7,820
14.06.2017, 23:46
Лучший ответ Сообщение было отмечено Jocker как решение

Решение

Из-за того , что наименование свойства в модели - Image1 , совпадает с наименованием второго аргумента функции, - конфликт маппинга данных запроса. , переименуйте либо аргумент функции , либо поле модели.
1
2 / 2 / 0
Регистрация: 08.03.2020
Сообщений: 141
23.08.2021, 12:18
У меня такая же ошибка, но совпадающих названий нет. Странно
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
27.08.2021, 01:46
AlexPes, Типы данных также должны совпадать. Точнее, данные из параметра http должны быть приводимы к типу в сигнатуре метода контроллера.

Добавлено через 6 минут
Все имена параметров из сигнатуры должны быть в списке параметров http, но при этом в последнем может быть больше параметров - они будут проигнорированы.
Если в сигнатуре метода указан класс модели, то в http может не быть одного или более требующихся - MVC framework создаст экземпляр класса модели, но заполнит только те его поля, которые получит из http, остальные будут просто инициализированы в соответствии с объявлениями в классе модели (null или какое-то "стартовое" значение, например 0 для int или "" для string).
0
2 / 2 / 0
Регистрация: 08.03.2020
Сообщений: 141
28.08.2021, 16:01
MsGuns, можете пожалуйста оценить, как у меня написано?
Модель:
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
public partial class MissingPerson
    {
        
        public MissingPerson()
        {
            this.SearchCampaigns = new HashSet<SearchCampaign>();
        }
 
        [HiddenInput(DisplayValue = false)]
        public int MissingPersonID { get; set; }
 
        public virtual string Surname { get; set; }
 
        public string Name { get; set; }
 
        public string Patronymic { get; set; }
 
        public System.DateTime DateOfBirth { get; set; }
 
        public int Gender { get; set; }
 
        public byte Growth { get; set; }
 
        public string BodyType { get; set; }
 
        public string Appearance { get; set; }
 
        public string ClothingDescription { get; set; }
 
        public string SpecialThings { get; set; }
 
        public System.DateTime DateLastSeen { get; set; }
        public string PlaceLastSeen { get; set; }
        public string PossibleLocation { get; set; }
 
        public string FullApplicant { get; set; }
 
        public string PhoneNumber { get; set; }
 
        public string Email { get; set; }
 
        public bool New { get; set; }
        public byte[] Image { get; set; }
 
        public virtual Gender Gender1 { get; set; }
       
        public virtual ICollection<SearchCampaign> SearchCampaigns { get; set; }
    }
Метод в контроллере:
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
31
32
33
34
35
36
37
38
39
40
41
42
43
[HttpPost]
        public ActionResult Create( MissingPerson missingPerson, string selectedGenderID, string selectedBodyType, HttpPostedFileBase uploadImage)
        {
             missingPerson.Gender = Convert.ToInt32(selectedGenderID);
            var str = selectedBodyType;
            missingPerson.BodyType = str;
            //if (ModelState.IsValid /*&& uploadImage != null*/)
            //{
            byte[] imageData = null;
 
            // считываем переданный файл в массив байтов
 
            using (var binaryReader = new BinaryReader(uploadImage.InputStream))
            {
                imageData = binaryReader.ReadBytes(uploadImage.ContentLength);
                //var imageParts = uploadImage.ToString().Split(',').ToList<string>();
                //byte[] Image = Convert.FromBase64String(imageParts[1]);
                //imageData = Image;
            }
            // установка массива байтов
            missingPerson.Image = imageData;
            db.MissingPersons.Add(missingPerson);
            try
            {
 
                db.SaveChanges();
                return RedirectToAction("Index", "MissingPersons");
            }
            catch (DbEntityValidationException ex)
            {
                //foreach (DbEntityValidationResult validationError in ex.EntityValidationErrors)
                //{
                //    Response.Write("Object: " + validationError.Entry.Entity.ToString());
                //    Response.Write(" ");
                //    foreach (DbValidationError err in validationError.ValidationErrors)
                //    {
                //        Response.Write(err.ErrorMessage + "");
                //    }
                //}
                Console.WriteLine(ex);
            }
            return View("Create");
        }
Когда в представление добавляю место для загрузки изображения, то сразу же эта ошибка вылезает, которая выше написана, даже если никакое изображение не загружать, а просто отправить данные на сервер
C#
1
2
3
4
5
6
7
<div class="form-group">
        @Html.LabelFor(model => model.Image, htmlAttributes: new { @class = "control-label col-md-2", accept = "image/jpeg" })
        <div class="col-md-10">
            <input type="file" id="image" name="image" value="Загрузить" />
        </div>
        
    </div>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.08.2021, 16:01
Помогаю со студенческими работами здесь

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

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

В квадратной действительной матрице порядка N поменять местами строку, содержащую наибольшее значение, со строкой, содержащей наименьшее значение
Прошу помочь решить задачки!:(очень нужно (Билет №18) В квадратной действительной матрице порядка N поменять местами строку,...

Входные и выходные данные
Помогите пожалуйста решить задачу, очень прошу, я в Паскале плохо разбираюсь((((( Требуется найти самую длинную непрерывную цепочку...

Входные данные в функцию
Объясните пожалуйста, зачем мы в функцию посылаем адрес count, а не саму переменную count void stringToArray (char str, int mass,...


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

Или воспользуйтесь поиском по форуму:
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