Pull to refresh

Comments 22

Не использовать Ajax.BeginForm, использовать FormData, сделать php обработчик и еще тучи советов по увеличению программного кода.

Думаю, стоило прислушаться к совету и не использовать Ajax.BeginForm.
Кода получилось бы меньше, да и получился бы он более поддерживаемым. А с учётом кучи JS библиотек, задачу вы решили бы быстрее.


Да и логику вашего обработчика/хелпера я так и не понял.

22 строчки JS кода, и любой /> теперь поддерживает отправку.

Обработчик, Определяет тип фала, по нему создаёт .* type после чего я могу с помощь File.Open сделать запись (что и так приходиться делать при передачи файлов в asp .net да же с помощь классики.
Зачем куча JS если 2 функции заменяют нужное решение?
UFO just landed and posted this here
Ну я написал, что на скорую руку.
По факту это выглядит намного по другому.
Помимо типо я вытаскиваю формат в котором зашифрован файл, общий формат и его расширение.
Тема в статье основная это передача через Ajax. Фулл-код развертку выкидывать нету смысла.
А что не так? В парсере где надо вылететь сразу если структура не соответствует ожидаемой
Что тоже верно, ведь в helper-е накинут Try-catch

А то, что попробуйте понять, что пошло не так, по очень понятной ошибке IndexOutOfRangeException.

Подождите, то есть вы серьезно льете файлы на сервер в base64? Про multipart и прочее вы никогда не слышали?


Извините, но на универсальное (и тем более — качественное) решение это никак не тянет.

То есть вы всерьез предлагаете, помимо js, c# и прочих прелестей asp .net привязать PHP
HabrHabr или QT?
Вы же понимаете, что multipart это стандарт и никак не привязан к технологии?
Знаете, каждому своё, один использует base64 который его устраивает,
другой может использовать readAsBinaryString()

… и что вы дальше будете с этим бинарником делать? Вы, гм, вообще понимаете, зачем мультипарт нужен?

Увеличение размера запроса на треть не смущает, хорошо если вы сами можете настроить размер запроса, а где нибудь на хостинге может стать проблемой.
Работали вообще с ASP .net?
IIS настроили, web.config настроили, если уж очень требовательны к размеру запроса, то ограничили его в js, 2 строчками кода, получив длину загружаемого файла.
А вы мой комментарий? Когда у вас есть доступ к серверу, это не проблема, проблема может быть, если вы виртуальным хостингом пользуетесь.

Нет, я предлагаю использовать multipart, который asp.net прекрасно поддерживается.


(Вам ведь не зря советовали взять FormData)

StackOverflow
Все эти решения и им подобные на Stack-е предлагают одно и то же, обработчик привязывать к форме и каждый раз писать его, что в моём случаи больше не требуется.

Ну то есть самостоятельно, без StackOverflow, вы не понимаете, как написать такой обработчик, который не надо было бы каждый раз писать, и который был работал с FormData? Маленький намек: это можно сделать даже в вашем обработчике (если не учитывать остальные его недостатки); кода, что характерно, будет намного меньше после этого, ваш onchange можно будет выкинуть полностью.

И используем эту функцию в основной функции.

Я тут немножко не понял. Вы правите код функции, поставляющейся с jquery.unobtrusive-ajax? Или пишете свою функцию, которую вешаете на тот же набор условий?

Вместо использование serializeArray() который не обрабатывает input [type=file] написали свою функцию и подменили её в файле с jquery.unobtrusive-ajax, для того, что бы он мог обрабатывать input не нарушая логику своей работы и не требовать дополнительных обработчиков на формы в дальнейшем.
UFO just landed and posted this here

Я и говорю: правите код функции, поставляющейся third-party. Вы знаете, чем это грозит?

Sign up to leave a comment.

Articles