Member 14683862 Ответов: 1

Как загрузить файл на сервер


Эй,
Я хочу загрузить файловый сервер, но не могу получить полный путь к файлу


Например

если путь есть ... d:/images/image1.jpg";

я получаю "image1.jpg"


что я могу сделать?

Что я уже пробовал:

protected void Button1_Click(object sender, EventArgs e)
{


    UploadFileToFTP(FileUpload1.PostedFile.FileName);

}


private static void UploadFileToFTP(string source)
        {
            string ftpurl = "xxx"; // e.g. ftp://serverip/foldername/foldername
            string ftpusername = "xxx"; // e.g. username
            string ftppassword = "xxx"; // e.g. password

            try
            {
                string filename = Path.GetFileName(source);
                string ftpfullpath = ftpurl;
                FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(ftpfullpath);
                ftp.Credentials = new NetworkCredential(ftpusername, ftppassword);

                ftp.KeepAlive = true;
                ftp.UseBinary = true;
                ftp.Method = WebRequestMethods.Ftp.UploadFile;

                FileStream fs = File.OpenRead(source);
                byte[] buffer = new byte[fs.Length];
                fs.Read(buffer, 0, buffer.Length);
                fs.Close();

                Stream ftpstream = ftp.GetRequestStream();
                ftpstream.Write(buffer, 0, buffer.Length);
                ftpstream.Close();
            }
            catch (WebException e)
            {
                String status = ((FtpWebResponse)e.Response).StatusDescription;
            }
        }

F-ES Sitecore

Вы должны сохранить загруженный файл на веб-сервере, а затем загрузить его оттуда. Для этого можно использовать папку ~/App_Data. В качестве альтернативы используйте загруженный файл в качестве потока для загрузки на FTP, а не для получения потока из сохраненного файла.

Member 14683862

FileUpload1.SaveAs(MapPath("~/Images/" + FileUpload1.FileName));

UploadFileToFTP(MapPath("~/Images/" + FileUpload1.FileName));

1 Ответов

Рейтинг:
0

Dave Kreskowiak

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