Форум программистов, компьютерный форум, киберфорум
Наши страницы

C# под Web, ASP.NET

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 30, средняя оценка - 4.73
ai-zer
18 / 33 / 4
Регистрация: 09.10.2010
Сообщений: 417
Завершенные тесты: 1
#1

Сохранение файла на сервере - C# ASP.NET

26.12.2011, 17:13. Просмотров 4461. Ответов 8

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

C#
1
2
3
4
5
6
7
if (FileUpload1.HasFile)
            {
                string fileName = FileUpload1.FileName;
                savePath += fileName;
                FileUpload1.SaveAs(savePath);
                HyperLink1.NavigateUrl = savePath;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2011, 17:13
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Сохранение файла на сервере (C# ASP.NET):

Сохранение данных с формы в файл на сервере - C# ASP.NET
Люди добрые помогите! Подскажите как из текстового поля <input type="text" id="client_name" class="form-control"...

Аутентификация Form ASP.NET. Сохранение User на сервере - C# ASP.NET
Добрый день! Сделал Form аутентификацию ASP.NET-приложения во внутренней сети. Когда ввел разрешеного юзера (например 'MyUser'), то он...

Cоздание файла на сервере,указывая урл. - C# ASP.NET
Помогите с казалось бы простой проблемой,не успеваю разобраться,сорки поджимают. Необходимо на сервере создать файл,img,имя которого буду...

не могу узнать размер файла на сервере - C#
подскажите как узнать размер файла на сервере FTP если я использую библиотеку BytesRoad.Net.Ftp. Всё перерыл...никак не получается узнать...

Определить размер файла на сервере по имеющейся ссылке - C#
Здравствуйте форумчане Суть задачи - определить размер файла на сервере по имеющейся ссылке WebClient client = new WebClient(); ...

Как проверить произошли изминение файла на сервере или нет? - C# ASP.NET
Здравствуйте! Столкнулся с проблемой: как при помоще asp.net проверить произошли изминение файла на сервере или нет.

8
sau
1671 / 1474 / 146
Регистрация: 22.07.2011
Сообщений: 5,595
Завершенные тесты: 1
26.12.2011, 18:16 #2
HyperLink1.NavigateUrl = savePath;
- ссылка на физический путь. а нужно на виртуальный
http://myserver/files/filename.ext
0
ai-zer
18 / 33 / 4
Регистрация: 09.10.2010
Сообщений: 417
Завершенные тесты: 1
26.12.2011, 18:54  [ТС] #3
sau, не подскажете кодом, как сделать это?
0
sau
1671 / 1474 / 146
Регистрация: 22.07.2011
Сообщений: 5,595
Завершенные тесты: 1
26.12.2011, 19:14 #4
C#
1
HyperLink1.NavigateUrl = "~/папкаСфайлами/имяфайла"
Ну это как бы очень простой пример, а в общем случае там все сложнее.
1
ai-zer
18 / 33 / 4
Регистрация: 09.10.2010
Сообщений: 417
Завершенные тесты: 1
26.12.2011, 19:52  [ТС] #5
sau, Конфигурация метода SaveAs требует использования корневого пути, а путь '~\guest.log' не является корневым.
как тогда сделать выгрузку?
простите, я уже 3 дня с этим вожусь, надоело самому...
0
sau
1671 / 1474 / 146
Регистрация: 22.07.2011
Сообщений: 5,595
Завершенные тесты: 1
26.12.2011, 20:04 #6
savePath - может указывать на папку с файлами на сервере.
ну как пример:
C#
1
var savePath = Server.MapPath("~/files/") + FileUpload1.FileName;
а у веб-контрола формируем ссылку такого вида:
C#
1
HyperLink1.NavigateUrl = "~/files/"+FileUpload1.FileName;
в результате получим следующее:
HTML5
1
<a href="files/filename.txt"/>
1
ai-zer
18 / 33 / 4
Регистрация: 09.10.2010
Сообщений: 417
Завершенные тесты: 1
26.12.2011, 23:45  [ТС] #7
блин, не знаю, всё равно не выдает окно для скачки=(
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
      string Date = DateTime.UtcNow.ToString();
        int[] counter = new int[10];
        protected void Page_Load(object sender, EventArgs e)
        {
            DisplayFiles(BulletedList1);
        }
 
        protected void Button1_Click(object sender, EventArgs e)
        {
            if (FileUpload1.HasFile)
            { 
                var savePath = Server.MapPath("~/f/");
                FileStream Fs = new FileStream(savePath+"files.log", FileMode.Append, FileAccess.Write);
                string fileName = FileUpload1.FileName;
                savePath += fileName;
                FileUpload1.SaveAs(savePath);
                
                StreamWriter Wr = new StreamWriter(Fs);
                Wr.WriteLine(counter[0] + " " + Date + " " + fileName);
                Wr.Close();
                UploadStatusLabel.Text = "Ваш файл сохранён как " + fileName;
            }
            else
            {
                UploadStatusLabel.Text = "Вы не загрузили файл.";
            }
            
        }
 
        public void DisplayFiles(BulletedList BulletList1)
        {
             var savePath = Server.MapPath("~/f/");
            BulletedList1.Items.Clear();
            StreamReader Re = new StreamReader(savePath+"files.log");
            do
            {
                string text = Re.ReadToEnd();
                String[] Spl = text.Split();
                BulletedList1.Items.Add(Spl[0] + " " + Spl[1] + " " + Spl[2] + " " + Spl[3]);
                BulletedList1.ResolveUrl(Spl[3]);
                HyperLink1.NavigateUrl =  savePath + Spl[3];
            } while (!Re.EndOfStream);
            Re.Close();
        }
    }
0
sau
1671 / 1474 / 146
Регистрация: 22.07.2011
Сообщений: 5,595
Завершенные тесты: 1
27.12.2011, 00:11 #8
ai-zer, жесть
0
Hrenochel
6 / 6 / 1
Регистрация: 02.04.2012
Сообщений: 21
04.05.2012, 09:29 #9
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
 
namespace ForM.info
{
    public partial class informat : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
 
        }
 
        protected void Button1_Click(object sender, EventArgs e)
        {
 
             if (FileUpload1.HasFile)
             {
                 string fileName = FileUpload1.FileName;
                
                 FileUpload1.SaveAs(Server.MapPath(@"~\img\")+fileName);
                 TextBox1.Text = "Сохранено";
 
             }
        }
    }
}
у меня так работает

Добавлено через 3 минуты
только создай папку img в корневом своем каталоге а то будет ругаться на то что путь не полный
0
04.05.2012, 09:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.05.2012, 09:29
Привет! Вот еще темы с ответами:

Сформировать файла на основе данных SP на SQL сервере и передать юзеру - C# ASP.NET
У меня есть хранимая процедура на сервере, которая возвращает набор записей отобранных селектом. Нужно этот набор экспортировать в...

Как на C# из web project узнать размер и дату файла на сервере? - C# ASP.NET
Товарищи вопрос такой: как на C# из web project узнать размер и дату файла на сервере? Заранее благодарю!!

Выполнение php скриптов (нужно на сервере поменять дату создания файла) - C#
всем привет такая ситуация нужно на сервере поменять дату создания файла. в C# я так понял нет тако возможности. нотогда вопрос такой. как...

Создание файла на сервере дает ошибку Microsoft VBScript runtime error '800a0046' - C# ASP.NET
Создаю объект на сервере &lt;script language=&quot;vbscript&quot; runat=&quot;server&quot;&gt; Set objFSO =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru