Anele Ngqandu Ответов: 2

Стиль asp.net загрузка файлов с помощью boostrap


Привет Ребята

Есть ли способ надеть какой - нибудь стиль в asp.net кнопка FileUpload, только кнопка не весь элемент управления с использованием классов из bootstrap?

2 Ответов

Рейтинг:
1

Richard Deeming

Здесь много предложений: http://stackoverflow.com/questions/11235206/twitter-bootstrap-form-file-element-upload-button[^]

Я уже использовал вот этот[^], и он довольно хорошо работает в большинстве браузеров.


Anele Ngqandu

В проекте используется этот элемент управления &ЛТ;как ASP:fileupload с CssClass="БТН БТН-предупреждение" идентификатор="fileuploadimages" атрибут runat="сервер" /&ГТ;

Richard Deeming

Почти все ответы в потоке SO будут работать с этим элементом управления. Сценарий Bootstrap Filestyle, безусловно, делает это - я сам использовал его.

BobishKindaGuy

В приведенной выше ссылке stackoverflow есть все, чтобы стилизовать элементы управления и просмотреть файл, но я не вижу, как получить результирующий путь в asp.net так что я могу загрузить файл.

Richard Deeming

Вы не. Вы отправляете форму, содержащую загруженный файл, и получаете HttpPostedFile на сервере. Затем вы либо сохраняете файл где-то, либо читаете и обрабатываете необработанные байты.

Путь к выбранному файлу будет локальным для клиента. Вы ничего не можете сделать с ним на сервере.

BobishKindaGuy

Я новичок в этом деле asp.net. Так что мне нужна еще небольшая помощь.
Я получил его просмотр нормально, а затем он отображает имя файла - приятно для пользователя, чтобы подтвердить, что это тот, который они хотят обработать.
Поэтому я помещаю кнопку "Отправить" на страницу, и пользователь нажимает на ту, которая приводит меня к коду позади.
Вы говорите, что на отправленной странице есть фактический файл, "встроенный" в него, и все, что мне нужно сделать, это получить его с помощью HttpPostedFile и сохранить его на стороне сервера, верно?
Я не вижу "страницы.HttpPostedFile" или "сеанс.HttpPostedFile", не могли бы вы опубликовать фрагмент кода, чтобы показать, как получить содержимое файла в переменную? Мои файлы будут текстовыми, поэтому я, вероятно, буду тщательно преобразовывать объект в строку.
Я посмотрел на класс HttpPostedFile в msdn, но там нет примера кода.

Richard Deeming

Обычно вы используете свойства и методы то FileUpload контроль[^].

Чтобы прочитать содержимое в переменную, вы можете использовать то FileContent собственность[^], который возвращает Stream. Если вы хотите прочитать содержимое в виде текста, вам нужно будет обернуть StreamReader вокруг него.

При необходимости вы также можете воспользоваться PostedFile недвижимость, чтобы получить доступ к HttpPostedFile для этого контроля, или PostedFiles свойство, если вы принимаете несколько файлов.

Если это не удастся, то Request.Files собственность[^] предоставит вам доступ ко всем файлам, отправленным с текущим запросом.

BobishKindaGuy

Я согласен, что элемент управления FileUpload было бы проще всего использовать, но причина, по которой я пришел на эту страницу, та же, что и OP. Мне нужно "придать некоторый стиль" элементу управления FileUpload.

Поэтому страница stackoverflow, которую вы предложили, великолепна и прекрасно работает, но поскольку она не использует элемент управления FileUpload, я не уверен, где находится содержимое файла, когда происходит обратная передача. запрос.Файлы имеют нулевые файлы в нем.

Richard Deeming

Если вы используете первый ответ из этого вопроса StackOverflow, то вам просто нужно добавить runat="server" к <input type="file" hidden>; это превратит его в один HtmlInputFile контроль[^], который имеет PostedFile собственность. То InputStream собственность на которые дадут вам доступ к содержимому файлов опубликовано.

NB: Убедитесь, что вы установили <form>enctype к "multipart/form-data":

<form runat="server" enctype="multipart/form-data">

BobishKindaGuy

Ладно, я займусь этим делом. Спасибо за ваше терпение !

BobishKindaGuy

Я заставил его работать, очень благодарен. Было еще несколько вещей, которые нужно было сделать, поэтому я решил обновить это с помощью этого.

1. Мне пришлось добавить этот, как вы предложили. Он должен был войти в сайт.:
"multipart/form-data"

2. я добавил runat="server" к разметке "Uploader", которая, как вы сказали, превратила его в "HtmlControls.HtmlGenericControl" по умолчанию.дизайнер файл код aspx-файл.

3. Затем мне пришлось добавить следующее в файл разметки default.aspx. (включает в себя код для обеспечения обратной связи отладки)

&низкотемпературный;%@ Реализует Интерфейс Системы=".Веб.Пользовательского интерфейса.ICallbackEventHandler" %&ГТ;



Dim _cbMessage как строка = ""
- Метод, который обрабатывает обратные вызовы на сервере.
Public Sub RaiseCallbackEvent(ByVal eventArgument As String) _
Система Реализует.Веб.Пользовательского интерфейса.ICallbackEventHandler.RaiseCallbackEvent

Попробуй
Страница.ClientScript.ValidateEvent(Uploader1.Уникальный Идентификатор, Мне.Метод toString())
_cbMessage = "корректное событие вызвало обратный вызов."

Поймать ex как исключение
_cbMessage = "неправильное событие вызвало обратный вызов."

Конец Попытки

Конец Подводной Лодки

- Метод, возвращающий результат обратного вызова.
GetCallbackResult Государственной Функции () Как Системную Строку Реализует.Веб.Пользовательского интерфейса.ICallbackEventHandler.GetCallbackResult
Вернуться _cbMessage
Конечная Функция


Защищенный Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
If (Не IsPostBack) Затем
Dim CM As ClientScriptManager = страница.ClientScript
Dim CallBackRef As String = CM.GetCallbackEventReference("'" & Page.Уникальный идентификатор &ампер; "'", "арг", "ReceiveServerData", "", "ProcessCallBackError", ложные)
Dim CallbackScript As String = "function CallTheServer(arg, context) {" & CallBackRef & "; }"
CM.RegisterClientScriptBlock(Me.GetType(), "CallTheServer", CallbackScript, True)
Конец, Если
Конец Подводной Лодки

Защищенные переопределения суб визуализации(писатель бывал в качестве системы.Веб.Пользовательского интерфейса.HtmlTextWriter)
Страница.ClientScript.RegisterForEventValidation(Uploader1.Уникальный Идентификатор, Мне.Метод toString())
Ключевое слово mybase.Рендер(писатель)
Конец Подводной Лодки




var value1 = новая дата();
функция ReceiveServerData(arg, context)
{
Сообщение.через свойство innerText = арг;
Label1.innerText = "обратный вызов завершен в" + value1;
value1 = новая дата();
}
функция ProcessCallBackError(arg, контекст)
{
Message.innerText = "произошла ошибка".;
}

Member 11612801

sdsdsds

Рейтинг:
1

vksingh25d

Использование Asp.Net управление загрузкой файлов.
&ЛТ;как ASP:fileupload с атрибут runat="сервер" идентификатор="fileupload с"&ГТ;

Для его стилизации используйте нижеприведенный css.


input[type=file]::-webkit-file-upload-button {
цвет: #ffffff;
граница: отсутствует;
padding-top: 5px;
фоновое изображение: линейный градиент(справа, #051937, #004d7a, #008793, #00bf72, #a8eb12);
граница-радиус: 4px;
высота: 30px;
ширина: 400px
}


CHill60

Вы не добавили ничего нового к этой старой теме