загрузите на ftp asp.net

попробуйте создать его в папке, в которой находится проект

5
задан Kemal Emin 8 May 2009 в 07:14
поделиться

4 ответа

Как я понимаю ваш вопрос, вы хотите загрузить файл на другой удаленный сервер (так что это не другой сервер, расположенный в той же сети, что и ваш веб-сервер)? В этом случае вы можете сделать несколько разных вещей. Возможно, самый простой способ - начать с обычной загрузки файла на свой сервер, а затем попросить сервер отправить файл через FTP на другой удаленный сервер:

string fileName = Path.Combine("<path on your server", FileUpload1.FileName);
FileUpload1.SaveAs(fileName);
using(System.Net.WebClient webClient = new System.Net.WebClient())
{
    webClient.UploadFile(
        New Uri("ftp://remoteserver/remotepath/" + FileUpload1.FileName), 
        localFile);
}

... или это может сработать, выполнив один шаг:

using(System.Net.WebClient webClient = new System.Net.WebClient())
{
    webClient.UploadData(
        New Uri("ftp://remoteserver/remotepath/" + FileUpload1.FileName), 
        FileUpload1.FileBytes);
}

(я не пробовал этот код, поэтому в нем могли быть некоторые ошибки ...)

Обновление: я заметил, что был неправ, предполагая, что методы UploadXXX WebClient были статическими ...

4
ответ дан 18 December 2019 в 14:51
поделиться

Вы можете использовать класс WebClient для сохранения загруженного файла на FTP (без сохранения его в виде файла на сервере). Примерно так:

string name = Path.GetFileName(UploadControl.FileName);
byte[] data = UploadControl.FileBytes;

using (WebClient client = new WebClient()) {
   client.UploadData("ftp://my.ftp.server.com/myfolder/" + name, data);
}
4
ответ дан 18 December 2019 в 14:51
поделиться

Вы не можете загрузить его на FTP прямо из формы HTML. Однако вы можете загрузить его в свое приложение ASP.NET и затем загрузить его на FTP оттуда с помощью FtpWebRequest .

1
ответ дан 18 December 2019 в 14:51
поделиться

РЕДАКТИРОВАТЬ

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

string path = "Z:\\Path\\To\\File.txt";
string path = @"Z:\Path\To\File.txt";

Во-вторых, если у вас есть только FTP-доступ к другому серверу, вы можете получить свойство FileUpload.FileBytes элемента управления FileUpload. Это даст вам байт [] содержимого файла.

Отсюда вы используете System.Net.FtpWebRequest и System.Net.FtpWebResponse для загрузки вашего файла в учетную запись FTP.

Вот несколько примеров кода здесь в VB .NET, но вам должно быть достаточно легко разобраться

http://www.programmingforums.org/thread15954.html

ORIG

Элемент управления загрузкой файлов предоставит вам файл на вашем веб-сервере.

Это будет зависеть от вас, вы размещены на FTP.

У вас есть общий путь / подключенный диск UNC на другом сервере, который вы можете сохранить.

Элемент управления FileUpload имеет .SaveAs () метод, так что это просто вопрос

if (FileUpload1.HasFile)
try
{
    FileUpload1.SaveAs(@"Z:\Path\On\Other\Server\" + FileUpload1.FileName);
}
0
ответ дан 18 December 2019 в 14:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: