Как загрузить файл на сервер
Эй,
Я хочу загрузить файловый сервер, но не могу получить полный путь к файлу
Например
если путь есть ... 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));