powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC3: загрузка файла
11 сообщений из 11, страница 1 из 1
MVC3: загрузка файла
    #37537541
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как сделать такое:

юзер залогинился и создает новую запись, предположим добавляет некий прожект:
1. имя
2. описание
3. и хочет добавить картинку или видео к этому прожекту.

Как правильно сделать: добавить запись в базу и если все получилось, тогда делать загрузку файла?
а если на загрузке облом?
...
Рейтинг: 0 / 0
MVC3: загрузка файла
    #37537628
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На выбор:

1. Если файл хостится в той же БД, то никто не мешает сохранять данные сразу в одной транзакции.
2. Если файл хостится в ФС, то сначала создается запись в БД, а потом сохраняем файл. В случае ошибки сохранения файла тупо показываем алерт.
3. Разрешается прикреплять файл только к существующей записи. То есть сначала создается запись, потом появляется возможность прикрепления файла.
...
Рейтинг: 0 / 0
MVC3: загрузка файла
    #37537699
Starlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУНа выбор:

2. Если файл хостится в ФС, то сначала создается запись в БД, а потом сохраняем файл. В случае ошибки сохранения файла тупо показываем алерт.
3. Разрешается прикреплять файл только к существующей записи. То есть сначала создается запись, потом появляется возможность прикрепления файла.

Почему не наоборот - загружаем файл, если загрузка прошла, создаём запись? Пользователь ведь может начать загрузку, не дождавшись, закрыть браузер. И так несколько раз. Будем иметь кучу записей в бд без файлов?
...
Рейтинг: 0 / 0
MVC3: загрузка файла
    #37537711
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StarlexПочему не наоборот - загружаем файл, если загрузка прошла, создаём запись?
Бред.
StarlexПользователь ведь может начать загрузку, не дождавшись, закрыть браузер. И так несколько раз. Будем иметь кучу записей в бд без файлов?
Ну закрыл браузер. Ну не закачался файл. Ну остались записи без файла. И что дальше?
Если нужна транзакционность: VarBinary или FileStream .
...
Рейтинг: 0 / 0
MVC3: загрузка файла
    #37538026
st_st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сначала убеждаемся в наличии файла, затем добавляем о нём запись в базу.
У нас на одном из проектов (java) был подобный случай - файлы грузились в темповую директорию, добавлялись записи в базу, затем файлы обрабатывались и складывались в другую папку, но в сервлете была ошибка и в целевую папку ничего не сохранялось, в итоге в базе куча левых записей и на странице сайта вместо фоток красные кресты отсутсвия рисунков + уехавшая вследствии этого вёрстка. Пришлось писать скрипт, проверяющий каждую запись в базе + присутствие файла на диске и вычищение ненужных записей. После этого народ, создававший данный проект, пока файла нет, в базу ничего не пишет.

Аплоад произошёл, далее проверяем наличие файла и если он найден, то пишем в базу. При генерации страницы, если файла нет (файловый сервер к примеру перегружаем), то выдаём временный рисунок.
...
Рейтинг: 0 / 0
MVC3: загрузка файла
    #37538058
Starlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУНу закрыл браузер. Ну не закачался файл. Ну остались записи без файла. И что дальше?
Если нужна транзакционность: VarBinary или FileStream .

Случаи разные бывают. Если файл - один из 15 параметров (какой-нибудь аватар на форуме) и есть возможность последующей подгрузки, по вполне можно загрузку и проигнорировать при создании записи. Но в целом, "Не говори гоп, пока не перепрыгнешь"
...
Рейтинг: 0 / 0
MVC3: загрузка файла
    #37538440
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУНа выбор:

1. Если файл хостится в той же БД, то никто не мешает сохранять данные сразу в одной транзакции.
2. Если файл хостится в ФС, то сначала создается запись в БД, а потом сохраняем файл. В случае ошибки сохранения файла тупо показываем алерт.
3. Разрешается прикреплять файл только к существующей записи. То есть сначала создается запись, потом появляется возможность прикрепления файла.

1. да, так было бы проще, но в качестве базы может использоваться SQL Express потому файлы хранятся в ФС.
...
Рейтинг: 0 / 0
MVC3: загрузка файла
    #37538486
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как лучше именовать файлы при аплоаде ?

Т.е. каждый юзер может грузить файлы с одинаковыми именами, на сервере они складываются скажем в один фолдер.
Или лучше сразу грузить в постоянный фолдер, где файлы будут лежать... Как быть с юзерами и одинаковыми именами файлов?
...
Рейтинг: 0 / 0
MVC3: загрузка файла
    #37538543
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Winnipuhкак лучше именовать файлы при аплоаде ?
1. Именовать проще всего гуидами.
2. Размазывать файлы по папкам. Например, имя папки - текущий год-месяц "2011.11", либо год-месяц документа в БД и т.д.
...
Рейтинг: 0 / 0
MVC3: загрузка файла
    #37538551
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУWinnipuhкак лучше именовать файлы при аплоаде ?
1. Именовать проще всего гуидами.
2. Размазывать файлы по папкам. Например, имя папки - текущий год-месяц "2011.11", либо год-месяц документа в БД и т.д.

можно наверное еще и имя или ид юзера призвиздючить к имени файла
...
Рейтинг: 0 / 0
MVC3: загрузка файла
    #37542804
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос по сути:
Есть форма, на ней поля из модели и еще одно
Код: plaintext
1.
2.
3.
        <div>
            <input type="file" name="VideoFile" id="myFile" />  
        </div>


в методе контроллера ф вижу только модель, в который этого поля нет, и еще могу параметр с именем отловить

Код: plaintext
Request.Params.["myFile"] 


как грузить?

В примерах вижу

Код: plaintext
1.
2.
3.
4.
5.
foreach (string file in Request.Files)
            {
                HttpPostedFileBase hpf = Request.Files[file] as HttpPostedFileBase;
                if (hpf.ContentLength == 0)
                    continue;
            }

Но у меня строка, а не HttpPostedFileBase...

как решить проблему?
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC3: загрузка файла
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]