Как использовать загрузку нескольких файлов(любых файлов) с несколькими контроллерами загрузки файлов(например, fileupload1, fileupload2, fileupload3) в ASP.NET
Я хочу сохранить все пути к файлам в базе данных, соответствующей контроллерам fileupload.Я имею в виду,когда я выбираю 3 файла из fileupload1..эти файлы хранятся в одной таблице как запись с путем к файлу, идентификатором.То же самое,что и файлы fileupload2, хранящиеся в другой форме с Path, id.Я использую контроллеры загрузки файлов usinf 7 одним нажатием кнопки.
Что я уже пробовал:
. Код Aspx
< html xmlns="http://www.w3.org/1999/xhtml" >
&ЛТ;глава атрибут runat="сервер"и GT;
в <название>по jQuery с несколькими Загрузить файл&ЛТ;/название&ГТ;
&ЛТ;скрипт СРЦ="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"&ГТ;&ЛТ;/скрипт>
< style type= "text/css">
#divFile п {
шрифт: 13px tahoma, arial;
}
#divFile Н3 {
шрифт: 16px arial, tahoma;
шрифт-вес: жирный;
}
< / стиль>
& lt;скрипт>
$('#btUpload'). click (функция() {
if (fileUpload. value.length == 0) {//проверьте, выбран ли файл(Ы).
предупреждение ("файлы не выбраны".);
возвращать false;
}
});
< / script>
& lt;скрипт>
$('#btUpload'). click (функция () {
если (fileUpload1.значение.length == 0) {//проверьте, выбран ли файл(Ы).
предупреждение ("файлы не выбраны".);
возвращать false;
}
});
< / script>
< / head>
& lt;тело>
&ЛТ;форме ID="форма form1" атрибут runat="сервер"и GT;
&ЛТ;как ASP:fileupload с ИД="fileupload с" несколькими="истинный" атрибут runat="сервер" /&ГТ;
<asp: Button ID= "btUpload" Text = " Upload Files"
OnClick= "Upload_Files" runat= "server" />
&ЛТ;АСП:метка идентификатор="lblFileList" атрибут runat="сервер"и GT;
&ЛТ;АСП:метка идентификатор="lblUploadStatus" атрибут runat="сервер"и GT;
&ЛТ;АСП:метка идентификатор="lblFailedStatus" атрибут runat="сервер"и GT;
<asp:FileUpload ID= "fileUpload1" multiple= "true" runat= "server" />
&ЛТ;АСП:метка идентификатор="lblFileList1" атрибут runat="сервер"и GT;
&ЛТ;АСП:метка идентификатор="lblUploadStatus1" атрибут runat="сервер"и GT;
&ЛТ;АСП:метка идентификатор="lblFailedStatus1" атрибут runat="сервер"и GT;
< / форма>
< / body>
< / html>
. код cs:
защищенная пустая загрузка файла()
{
если (fileupload с.HasFile) / / проверьте, был ли выбран какой-либо файл.
{
int iUploadedCnt = 0;
int iFailedCnt = 0;
HttpFileCollection hfc = запрос.Файлы;
lblFileList.Text = " Выбрать "+ hfc.Считать + " файл(ы)";
if (hfc. Count <= 10) / / ограничение 10 файлов.
{
for (int i = 0; i <= hfc.Count-1; i++)
{
HttpPostedFile hpf = hfc[i];
if (hpf. ContentLength > 0)
{
если (! файл.Существует (Сервер.MapPath ("изображения\\") +
Путь.GetFileName(ФВЧ.Именем)))
{
DirectoryInfo objDir =
новый DirectoryInfo (сервер.MapPath ("изображения\\"));
строки sFileName = путь.GetFileName(ФВЧ.Именем);
строки sFileExt = путь.GetExtension(ФВЧ.Именем);
// ПРОВЕРЬТЕ НАЛИЧИЕ ДУБЛИКАТОВ ФАЙЛОВ.
FileInfo[] objFI =
objDir.Заражен(sFileName.Заменить(sFileExt,"") +".*");
if (objFI.Длина > 0)
{
// ПРОВЕРЬТЕ, СУЩЕСТВУЕТ ЛИ ФАЙЛ С ТАКИМ ЖЕ ИМЕНЕМ
foreach (файл FileInfo в objFI)
{
строка sFileName1 = objFI[0].Имя;
строка sFileExt1 = Path. GetExtension(objFI[0]. Name);
if (sFileName1. Replace(sFileExt1, "") ==
sFileName.Заменить(sFileExt, ""))
{
iFailedCnt += 1; / / не допускает дублирования.
перерыв;
}
}
}
ещё
{
// СОХРАНИТЕ ФАЙЛ В ПАПКЕ.
ФВЧ.Сохранить Как(Сервер.MapPath ("изображения\\") +
Путь.GetFileName(ФВЧ.Именем));
iUploadedCnt += 1;
}
}
}
}
lblUploadStatus.Текст = ""+ iUploadedCnt + " загруженные файлы.";
lblFailedStatus.Текст = ""+ iFailedCnt +
" дубликаты файлов не могут быть загружены.";
}
еще lblUploadStatus.Text = " допускается не более 10 файлов.";
}
еще lblUploadStatus.Text = " файлы не выбраны.";
}
protected void Fileupload1()
{
if (fileUpload1.HasFile) // проверьте, был ли выбран какой-либо файл.
{
int iUploadedCnt1 = 0;
int iFailedCnt1 = 0;
HttpFileCollection hfc1 = запрос.Файлы;
lblFileList.Text = " Выбрать "+ hfc1.Считать + " файл(ы)";
если (hfc1.Count <= 10) / / ограничение на 10 файлов.
{
for (int i = 0; i <= hfc1.Count-1; i++)
{
HttpPostedFile hpf = hfc1[i];
if (hpf. ContentLength > 0)
{
если (! файл.Существует (Сервер.MapPath ("изображения\\") +
Путь.GetFileName(ФВЧ.Именем)))
{
DirectoryInfo objDir =
новый DirectoryInfo (сервер.MapPath ("изображения\\"));
строки sFileName = путь.GetFileName(ФВЧ.Именем);
строки sFileExt = путь.GetExtension(ФВЧ.Именем);
// ПРОВЕРЬТЕ НАЛИЧИЕ ДУБЛИКАТОВ ФАЙЛОВ.
FileInfo[] objFI =
objDir.Заражен(sFileName.Заменить(sFileExt,"") +".*");
if (objFI.Длина > 0)
{
// ПРОВЕРЬТЕ, СУЩЕСТВУЕТ ЛИ ФАЙЛ С ТАКИМ ЖЕ ИМЕНЕМ
foreach (файл FileInfo в objFI)
{
строка sFileName1 = objFI[0].Имя;
строка sFileExt1 = Path. GetExtension(objFI[0]. Name);
if (sFileName1. Replace(sFileExt1, "") ==
sFileName.Заменить(sFileExt, ""))
{
iFailedCnt1 += 1; / / не допускает дублирования.
перерыв;
}
}
}
ещё
{
// СОХРАНИТЕ ФАЙЛ В ПАПКЕ.
ФВЧ.Сохранить Как(Сервер.MapPath ("изображения\\") +
Путь.GetFileName(ФВЧ.Именем));
iUploadedCnt1 += 1;
}
}
}
}
lblUploadStatus1.Текст = ""+ iUploadedCnt1 + " загруженные файлы.";
lblFailedStatus1.Текст = ""+ iFailedCnt1 +
" дубликаты файлов не могут быть загружены.";
}
еще lblUploadStatus1.Text = " допускается не более 10 файлов.";
}
еще lblUploadStatus1.Text = " файлы не выбраны.";
}
охраняемых недействительными Upload_Files(объект отправителя, EventArgs в электронной)
{
Загрузка файлов();
Fileupload1();
}
Karthik_Mahalingam
в чем проблема ?
Srinivas45
он подсчитывает все файлы в одном контроллере загрузки.Если я использую 2 контроллера, каждый из которых имеет одно изображение.Затем я получил счет 2 в методе управления ist fileupload.
lblFileList.Text = "Select" + hfc1.Количество файлов + " (с)";
Karthik_Mahalingam
какой фреймворк вы используете?
Srinivas45
я использую asp.net 2 применение шин.
Karthik_Mahalingam
я имею в виду структуру dot net
4.0, 4.5 или 3.5 ???
Srinivas45
4.0
Karthik_Mahalingam
ладно
Karthik_Mahalingam
можно ли использовать 4.5 ?
Srinivas45
Я. это возможно...Пожалуйста, дайте мне совет.
Karthik_Mahalingam
нет необходимости, проверьте мое решение.
Srinivas45
Хорошо, спасибо...я постараюсь...Не могли бы вы, пожалуйста, дать мне ваш почтовый идентификатор?Для функций Quires..я спрошу напрямую.заранее спасибо.
Karthik_Mahalingam
попробуйте приведенное ниже Решение, Если вам нужна какая-либо помощь, просто ответьте на этот пост, я посмотрю на него.
Suvendu Shekhar Giri
Вы получаете какую-нибудь ошибку?
Srinivas45
я не получаю никакой ошибки.но мое требование состоит в том, чтобы сохранить все файлы контроллера fileupload в разных таблицах differt.то есть каждый контроллер загрузки файлов имеет таблицу в БД.но здесь я получаю все файлы в одном контроллере, когда я отлаживаю.