Стиль asp.net загрузка файлов с помощью boostrap
Привет Ребята
Есть ли способ надеть какой - нибудь стиль в asp.net кнопка FileUpload, только кнопка не весь элемент управления с использованием классов из bootstrap?
Здесь много предложений: http://stackoverflow.com/questions/11235206/twitter-bootstrap-form-file-element-upload-button[^]
Я уже использовал вот этот[^], и он довольно хорошо работает в большинстве браузеров.
В проекте используется этот элемент управления &ЛТ;как ASP:fileupload с CssClass="БТН БТН-предупреждение" идентификатор="fileuploadimages" атрибут runat="сервер" /&ГТ;
Почти все ответы в потоке SO будут работать с этим элементом управления. Сценарий Bootstrap Filestyle, безусловно, делает это - я сам использовал его.
В приведенной выше ссылке stackoverflow есть все, чтобы стилизовать элементы управления и просмотреть файл, но я не вижу, как получить результирующий путь в asp.net так что я могу загрузить файл.
Вы не. Вы отправляете форму, содержащую загруженный файл, и получаете HttpPostedFile
на сервере. Затем вы либо сохраняете файл где-то, либо читаете и обрабатываете необработанные байты.
Путь к выбранному файлу будет локальным для клиента. Вы ничего не можете сделать с ним на сервере.
Я новичок в этом деле asp.net. Так что мне нужна еще небольшая помощь.
Я получил его просмотр нормально, а затем он отображает имя файла - приятно для пользователя, чтобы подтвердить, что это тот, который они хотят обработать.
Поэтому я помещаю кнопку "Отправить" на страницу, и пользователь нажимает на ту, которая приводит меня к коду позади.
Вы говорите, что на отправленной странице есть фактический файл, "встроенный" в него, и все, что мне нужно сделать, это получить его с помощью HttpPostedFile и сохранить его на стороне сервера, верно?
Я не вижу "страницы.HttpPostedFile" или "сеанс.HttpPostedFile", не могли бы вы опубликовать фрагмент кода, чтобы показать, как получить содержимое файла в переменную? Мои файлы будут текстовыми, поэтому я, вероятно, буду тщательно преобразовывать объект в строку.
Я посмотрел на класс HttpPostedFile в msdn, но там нет примера кода.
Обычно вы используете свойства и методы то FileUpload
контроль[^].
Чтобы прочитать содержимое в переменную, вы можете использовать то FileContent
собственность[^], который возвращает Stream
. Если вы хотите прочитать содержимое в виде текста, вам нужно будет обернуть StreamReader
вокруг него.
При необходимости вы также можете воспользоваться PostedFile
недвижимость, чтобы получить доступ к HttpPostedFile
для этого контроля, или PostedFiles
свойство, если вы принимаете несколько файлов.
Если это не удастся, то Request.Files
собственность[^] предоставит вам доступ ко всем файлам, отправленным с текущим запросом.
Я согласен, что элемент управления FileUpload было бы проще всего использовать, но причина, по которой я пришел на эту страницу, та же, что и OP. Мне нужно "придать некоторый стиль" элементу управления FileUpload.
Поэтому страница stackoverflow, которую вы предложили, великолепна и прекрасно работает, но поскольку она не использует элемент управления FileUpload, я не уверен, где находится содержимое файла, когда происходит обратная передача. запрос.Файлы имеют нулевые файлы в нем.
Если вы используете первый ответ из этого вопроса StackOverflow, то вам просто нужно добавить runat="server"
к <input type="file" hidden>
; это превратит его в один HtmlInputFile
контроль[^], который имеет PostedFile
собственность. То InputStream
собственность на которые дадут вам доступ к содержимому файлов опубликовано.
NB: Убедитесь, что вы установили <form>
'с enctype
к "multipart/form-data"
:
<form runat="server" enctype="multipart/form-data">
Ладно, я займусь этим делом. Спасибо за ваше терпение !
Я заставил его работать, очень благодарен. Было еще несколько вещей, которые нужно было сделать, поэтому я решил обновить это с помощью этого.
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 = "произошла ошибка".;
}
sdsdsds
Использование 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
}
Вы не добавили ничего нового к этой старой теме