Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
 Аватар для Lucky64
20 / 9 / 0
Регистрация: 16.01.2019
Сообщений: 288

Не получается загрузить файл на сервер

24.11.2019, 15:13. Показов 1404. Ответов 1

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток, есть проект клиент-сервер, клиент на ангуляре, сервер на коре. На сервере код загрузки файла:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[HttpPost("[action]/{formData}"), Route("addfile")]
        public async Task AddFile(IFormFile formData)
        {
            
                // путь к папке Files
                string path = "/Files/" + formData.FileName;
                // сохраняем файл в папку Files в каталоге wwwroot
                using (var fileStream = new FileStream(_appEnvironment.WebRootPath + path, FileMode.Create))
                {
                    await formData.CopyToAsync(fileStream);
                }
                FileModel file = new FileModel { Name = formData.FileName, Path = path };
                db.Files.Add(file);
                db.SaveChanges();
            
        }
на клиенте:
Компонент:
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
import { Component, OnInit } from '@angular/core';
import { HttpClient, HttpEventType } from '@angular/common/http';
 
@Component({
  selector: 'add-file',
  templateUrl: './add-files.component.html',
  
})
 
export class AddFilesComponent implements OnInit {
 
  fileData: File = null;
  previewUrl: any = null;
  fileUploadProgress: string = null;
  uploadedFilePath: string = null;
  constructor(private http: HttpClient) { }
 
  ngOnInit() {
  }
 
  fileProgress(fileInput: any) {
    this.fileData = <File>fileInput.target.files[0];
    this.preview();
  }
 
  preview() {
    // Show preview 
    var mimeType = this.fileData.type;
    if (mimeType.match(/image\/*/) == null) {
      return;
    }
 
    var reader = new FileReader();
    reader.readAsDataURL(this.fileData);
    reader.onload = (_event) => {
      this.previewUrl = reader.result;
    }
  }
 
  onSubmit() {
    let formData = new FormData();
    formData.append('files', this.fileData);
 
    this.fileUploadProgress = '0%';
 
    this.http.post('http://localhost:5000/api/file/addfile', formData, {
      reportProgress: true,
      observe: 'events'
    })
      .subscribe(events => {
        if (events.type === HttpEventType.UploadProgress) {
          this.fileUploadProgress = Math.round(events.loaded / events.total * 100) + '%';
          console.log(this.fileUploadProgress);
        } else if (events.type === HttpEventType.Response) {
          this.fileUploadProgress = '';
          console.log(events.body);
          alert('SUCCESS !!');
        }
 
      }) 
  }
}
ХТМЛ:
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
<div class="container">
  <div class="row">
    <div class="col-md-6 offset-md-3">
      <h3>Choose File</h3>
      <div class="form-group">
        <input type="file" name="image" (change)="fileProgress($event)" />
      </div>
      <div *ngIf="fileUploadProgress">
        Upload progress: {{ fileUploadProgress }}
      </div>
      <div class="image-preview mb-3" *ngIf="previewUrl">
        <img [src]="previewUrl" height="300" />
      </div>
 
      <div class="mb-3" *ngIf="uploadedFilePath">
        {{uploadedFilePath}}
      </div>
 
      <div class="form-group">
        <button class="btn btn-primary" (click)="onSubmit()">Submit</button>
      </div>
    </div>
  </div>
</div>
Примечание: Если реализовывать все только в коре, то все работает, файл загружается, значит с кодом все в порядке. Проблема в том, что файл не приходит с сервера, прошел точкой останова на клиенте, файл отправляется, ставлю точку останова на сервере, запускаю все по новой, реакция есть, то есть клиент запускает метод на сервере, однако я вижу, что
C#
1
IFormFile formData
равен null, а значит что и сохранять нечего.. чувствую что в мелочи ошибся, ткните где плс...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.11.2019, 15:13
Ответы с готовыми решениями:

Не получается загрузить дамб базы на сервер
Локально все работает нормально. Дамб загрузился без проблем. Все работает. При попытке загрузить дамб на сервер вылетает ошибка: ...

Не получается загрузить игровой сервер в браузере Яндекс
вот скрин

Не все папки сайта получается загрузить на фтп сервер
Сменил хостинг, бэкап сайта на компьютере, получил все данные от хостинга для доступа на фтп сервер, и через TotalComander пытаюсь залить...

1
 Аватар для Lucky64
20 / 9 / 0
Регистрация: 16.01.2019
Сообщений: 288
25.11.2019, 12:37  [ТС]
Ребят неуж то нет знающих?

Добавлено через 5 часов 18 минут
Все решил, сделал:
C#
1
2
[HttpPost("[action]"), Route("addfile")]
public async Task AddFile([FromForm]IFormFile files)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.11.2019, 12:37
Помогаю со студенческими работами здесь

Не получается загрузить файл с потока
//==========================================================================================================================================...

загрузить файл на сервер
Я написал программу которая скачивает некий текстовый файл из интернета и отображает его. Надо теперь изменив его сохранить на сервере. Как...

Загрузить файл на сервер
Возможно ли с помощью Pascal ABC NET отправить какой либо файл через интернет? Например загрузить его на хостинг или передать как нибудь на...

Загрузить файл на сервер
Добрый день. Никак не соображу с какой стороны подойти, хотя вроде у всех задача решается быстро и просто. Есть удалённый...

WinInet, не получается загрузить файл на FTP
Здравствуйте. Возникла проблема: не могу загрузить файл на FTP. Делаю так (предварительно, конечно же, открыв сессию): bool flag;...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru