Форум программистов, компьютерный форум, киберфорум
C#: ASP.NET Core
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 12.10.2020
Сообщений: 21

Как правильно прописать путь?

30.12.2020, 10:42. Показов 1933. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, я в своем проекте хочу сохранять изображения драг-энд-дропом. Вот что я уже сделала:
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
@page
@model MyWebSIte.Pages.Company.CreateModel
 
@{
    ViewData["Title"] = "Create";
}
 
@using Microsoft.AspNetCore.Mvc.Localization
@inject IViewLocalizer Localizer
 
<link rel="stylesheet" href="/css/create.css">
 
<div class="container-fluid">
    <div class="container">
        <div class="row">
            <div class="col">
                <h1>@Localizer["Создание"]</h1>
 
                <h4>@Localizer["Компании"]</h4>
                <hr />
                <div class="row">
                    <div class="col-md-4">
                        <div method="post">
                            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
                            <div class="form-group">
                                <label asp-for="Company.Title" class="control-label"></label>
                                <input asp-for="Company.Title" class="form-control" placeholder=@Localizer["Название"] />
                                <span asp-validation-for="Company.Title" class="text-danger"></span>
                            </div>
                            <div class="form-group">
                                <label asp-for="Company.ReleaseDate" class="control-label"></label>
                                <input asp-for="Company.ReleaseDate" class="form-control" />
                                <span asp-validation-for="Company.ReleaseDate" class="text-danger"></span>
                            </div>
                            <div class="form-group">
                                <label asp-for="Company.Rating" class="control-label"></label>
                                <input asp-for="Company.Rating" class="form-control" placeholder=@Localizer["Рейтинг"] />
                                <span asp-validation-for="Company.Rating" class="text-danger"></span>
                            </div>
                            <div class="form-group">
                                <label asp-for="Company.Bonus" class="control-label"></label>
                                <input asp-for="Company.Bonus" class="form-control" placeholder=@Localizer["Бонус"] />
                                <span asp-validation-for="Company.Bonus" class="text-danger"></span>
                            </div>
                            <div class="form-group">
                                <label asp-for="Company.Description" class="control-label"></label>
                                <input asp-for="Company.Description" class="form-control" placeholder=@Localizer["Описание"] />
                                <span asp-validation-for="Company.Description" class="text-danger"></span>
                            </div>
                            <div class="form-group">
                                @*<label asp-for="Company.Thematics" class="control-label"></label>
                                    <input asp-for="Company.Thematics" class="form-control" placeholder=@Localizer["Тематика"] />
                                    <span asp-validation-for="Company.Thematics" class="text-danger"></span>*@
 
                                <select asp-for="Company.Thematics" class="form-select form-select-lg mb-3" aria-label="Default select example">
                                    <option selected>@Localizer["Выберите тематику вашей компании"]</option>
                                    <option value="1">@Localizer["Электроника"]</option>
                                    <option value="2">@Localizer["Образование"]</option>
                                    <option value="3">@Localizer["Животные"]</option>
                                    <option value="4">@Localizer["Права человека"]</option>
                                    <option value="5">@Localizer["Природа"]</option>
                                    <option value="6">@Localizer["Культура"]</option>
                                    <option value="7">@Localizer["Семья"]</option>
                                    <option value="8">@Localizer["Короновирус"]</option>
                                    <option value="9">@Localizer["Здоровье"]</option>
                                    <option value="10">@Localizer["Игра"]</option>
                                </select>
                            </div>
                            <div class="form-group">
                                @*<label asp-for="Company.Images" class="control-label"></label>
                                    <input asp-for="Company.Images" class="form-control" placeholder="Изобраения" />
                                    <span asp-validation-for="Company.Images" class="text-danger"></span>*@
 
                                <form action="/HomeController.cs">
                                    <div id="dropZone">
                                        Для загрузки, перетащите файл сюда.
                                    </div>
                                </form>
                            </div>
                            <div class="form-group">
                                @*<label asp-for="Company.Video" class="control-label"></label>
                                    <input asp-for="Company.Video" class="form-control" placeholder=@Localizer["Видео"] />
                                    <span asp-validation-for="Company.Video" class="text-danger"></span>*@
                            </div>
                            <div class="form-group">
                                <label asp-for="Company.Topic" class="control-label"></label>
                                <input asp-for="Company.Topic" class="form-control" placeholder=@Localizer["Тема"] />
                                <span asp-validation-for="Company.Topic" class="text-danger"></span>
                            </div>
                            <div class="form-group">
                                <label asp-for="Company.News" class="control-label"></label>
                                <input asp-for="Company.News" class="form-control" placeholder=@Localizer["Новости"] />
                                <span asp-validation-for="Company.News" class="text-danger"></span>
                            </div>
                            <div class="form-group">
                                <label asp-for="Company.Price" class="control-label"></label>
                                <input asp-for="Company.Price" class="form-control" placeholder=@Localizer["Цена"] />
                                <span asp-validation-for="Company.Price" class="text-danger"></span>
                            </div>
                            <div class="form-group">
                                <label asp-for="Company.Tags" class="control-label"></label>
                                <input asp-for="Company.Tags" class="form-control" placeholder=@Localizer["Тэги"] />
                                <span asp-validation-for="Company.Tags" class="text-danger"></span>
                            </div>
                            <div class="form-group">
                                <input type="submit" value="Create" class="btn btn-primary" />
                            </div>
                        </div>
                    </div>
                </div>
 
                <div>
                    <a asp-page="Index">@Localizer["Вернуться к списку"]</a>
                </div>
            </div>
        </div>
    </div>
</div>
 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script src="/js/create.js"></script>
 
@section Scripts {
    @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}
CSS
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
body {
    font: 12px Arial, sans-serif;
}
 
#dropZone {    
    color: #555;
    font-size: 18px;
    text-align: center;    
    
    width: 400px;
    padding: 50px 0;
    margin: 50px auto;
    
    background: #eee;
    border: 1px solid #ccc;
    
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    border-radius: 5px;
}
 
#dropZone.hover {
    background: #ddd;
    border-color: #aaa;
}
 
#dropZone.error {
    background: #faa;
    border-color: #f00;
}
 
#dropZone.drop {
    background: #afa;
    border-color: #0f0;
}
JavaScript
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
59
60
61
62
63
64
65
66
$(document).ready(function () {
 
    var dropZone = $('#dropZone'),
        maxFileSize = 10000000; // максимальный размер фалйа - 10 мб.
 
    // Проверка поддержки браузером
    if (typeof (window.FileReader) == 'undefined') {
        dropZone.text('Не поддерживается браузером!');
        dropZone.addClass('error');
    }
 
    // Добавляем класс hover при наведении
    dropZone[0].ondragover = function () {
        dropZone.addClass('hover');
        return false;
    };
 
    // Убираем класс hover
    dropZone[0].ondragleave = function () {
        dropZone.removeClass('hover');
        return false;
    };
 
    // Обрабатываем событие Drop
    dropZone[0].ondrop = function (event) {
        event.preventDefault();
        dropZone.removeClass('hover');
        dropZone.addClass('drop');
 
        var file = event.dataTransfer.files[0];
 
        // Проверяем размер файла
        if (file.size > maxFileSize) {
            dropZone.text('Файл слишком большой!');
            dropZone.addClass('error');
            return false;
        }
 
        // Создаем запрос
        var xhr = new XMLHttpRequest();
        xhr.upload.addEventListener('progress', uploadProgress, false);
        xhr.onreadystatechange = stateChange;
        xhr.open('POST', 'Pages\Company\HomeController.cs');
        xhr.setRequestHeader('X-FILE-NAME', file.name);
        xhr.send(file);
    };
 
    // Показываем процент загрузки
    function uploadProgress(event) {
        var percent = parseInt(event.loaded / event.total * 100);
        dropZone.text('Загрузка: ' + percent + '%');
    }
 
    // Пост обрабочик
    function stateChange(event) {
        if (event.target.readyState == 4) {
            if (event.target.status == 200) {
                dropZone.text('Загрузка успешно завершена!');
            } else {
                dropZone.text('Произошла ошибка!');
                dropZone.addClass('error');
            }
        }
    }
 
});
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
using Microsoft.AspNetCore.Mvc;
using MyWebSIte.Data;
using MyWebSIte.Models;
using System.IO;
using System.Linq;
using static System.Net.WebRequestMethods;
 
namespace MyWebSIte.Pages
{
    public class HomeController : Controller
    {
        readonly ApplicationDbContext _context;
 
        public HomeController(ApplicationDbContext context)
        {
            _context = context;
        }
        public IActionResult Index()
        {
            return View(_context.Company.ToList());
        }
 
        [HttpPost]
        public IActionResult Create(CompanyViewModel pvm)
{
 
            Models.Company company = new Models.Company { };
            if (pvm.Images != null)
            {
                byte[] imageData = null;
                //считываем переданный файл в массив байтов
                using (var binaryReader = new BinaryReader(pvm.Images.OpenReadStream()))
                {
                    imageData = binaryReader.ReadBytes((int)pvm.Images.Length);
                }
                //установка массива байтов
                company.Images = imageData;
            }
            _context.Company.Add(company);
            _context.SaveChanges();
 
            return RedirectToAction("Index");
        }
    }
}
Я опиралась на эту https://habr.com/ru/post/125424/ и эту https://metanit.com/sharp/aspnet5/21.3.php статью. Сделала я вроде бы все правильно, но у меня почему то выскакивает ошибка 404. Видимо все дело в неправильном пути, но я не знаю как это исправить. Подскажите поалуйста как исправить эту ошибку. Заранее спасибо
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.12.2020, 10:42
Ответы с готовыми решениями:

Как правильно прописать путь к съемному носителю
Всем привет.Подскажите пожалуйста как правильно прописать путь к съемному носителю, что-то я по всякому попробовал не получается.Например к...

Как правильно прописать путь к БД Firebird embedded
Добрый вечер. Есть приложение с бд его надо запускать на любом компьютере. База данных основана на firebird. Для работы на других...

Xamarin Android - Как правильно прописать путь к файлу?
Люди добрые помогите, у меня проблема дело в том что у меня вылетает программа с ошибкой An Unhandle Exception Occured после того как я...

1
 Аватар для sau
2774 / 2074 / 386
Регистрация: 22.07.2011
Сообщений: 7,822
30.12.2020, 20:12
Цитата Сообщение от Viktoria31017 Посмотреть сообщение
xhr.open('POST', 'Pages\Company\HomeController.cs');
это что ?
P/S Fetch современная замена устаревшему XMLHttpRequest.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.12.2020, 20:12
Помогаю со студенческими работами здесь

Как в .NET Core правильно прописать полный путь от корня?
В некоторых моментах при разработке приложения мне нужно прописать полный путь. То - есть локально это localhost:8080 и дальше уже MVC. ...

Как правильно прописать путь для запуска с командной строки?
Не получается запустить программу с командной строки . Прога лежит в C:\Users\Имя\Documents\Visual Studio 2012\Projects\Работа с...

Как прописать сетевой путь?
Добрый день, подскажите пожалуйста как прописать сетевой путь к файлу в данном коде метода : допустим если FileAdress(10 строка)...

Как прописать путь к файлу?
Доброго времени суток, дорогие форумчане! Мне нужно создать текстбокс с автопрописыванием пути к файлу. Кнопка &quot;Обзор&quot; уже есть....

Как прописать путь к своей DLL
Написал сою DLL (лежит в папке с программой), а при переносе на другой комп программа её не видит.


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru