Ana Sayfa | Blog | Fotoğraf Albümü  RSS | JSON
Daron Yöndem
Soru sorma merkezi!
FileUpload Full Path Almak
Gön: Uygar ER 

Abi merhaba aşağıdaki kod bir dosyayı nete upload etmek için kullandığım bir kod. Fakat fileUpload kontrolü içerisinden dosyanın client tarafındaki path'ini alamıyorum.Örneğin excel dosyasının sadece ismini alabiliyorum. bu yüzden dosyayı projenin içinde arıyor ve hata veriyor. Dosyanın path kısmını alabileceğim bir method var mı file upload için.

private bool UploadToFTP(string strFilePath, string strFTPPath, string strUserName, string strPassword)
{
try
{
//Create a FTP Request Object and Specfiy a Complete Path
string strFileName = strFilePath.Substring(strFilePath.LastIndexOf("\\") + 1);
FtpWebRequest reqObj = (FtpWebRequest)WebRequest.Create(strFTPPath + @"/" + strFileName);
//Call A FileUpload Method of FTP Request Object
reqObj.Method = WebRequestMethods.Ftp.UploadFile;
//If you want to access Resourse Protected You need to give User Name and PWD
reqObj.Credentials = new NetworkCredential(strUserName, strPassword);
// Copy the contents of the file to the request stream.
StreamReader sourceStream = new StreamReader(strFilePath);
byte[] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
sourceStream.Close();
reqObj.ContentLength = fileContents.Length;
Stream requestStream = reqObj.GetRequestStream();
requestStream.Write(fileContents, 0, fileContents.Length);
requestStream.Close();
FtpWebResponse response = (FtpWebResponse)reqObj.GetResponse();
response.Close();
}
catch (Exception Ex)
{ // report error
throw Ex;
}
return true;
}
Gön: Daron Yöndem 

Sorularım var;

1. Bu bir ASP.NET sitesi mi? (FileUpload dediğine göre öyle olmalı?)
2. Yapmaya çalıştığında şey sitedeki kullanıcından bir dosya alıp FTP ile onu uzaktaki bir sunucuya mı kaydetmek?
3. Yoksa sadece yapmaya çalıştığın kullanıcından bir dosya alıp sitenin çalıştığı yere mi kaydetmek?
4. Eğer bunlar değilse ne yapmaya çalışıyorsun?

:)

Gön: Uygar ER 

1) Bu bir asp.net sitesi.
2)3) yapmaya çalıştığım kullanıcıdan bir dosya alıp sitemin çalıştığı server içerisindeki bi klasöre upload etmek. ( "ftp://risk/deneme" risk diye bir server'ım var onun içindeki deneme klasörüne kayıt etmeye çalışıyorum.)

Tek istediğim şey dosyanın full pathini almak. Öncelikle yapılabiliyorsa server tarafında, yapılamıyorsa javascript ile... html file upload kullanmam işe yarar mı acaba?
Gön: Daron Yöndem 

İstemci tarafında dosyanın full path'ini alamazsın. Güvenlik nedeniyle buna izin verilmez.

Dosyayı alıp sunucuda istediğin yere kaydetmek için aşağıdaki kod işini görecektir.

Dim DosyaAdi As String = "C:\XXXX\" & System.IO.Path.GetFileName(FileUpload1.PostedFile.FileName)

If System.IO.File.Exists(DosyaAdi) Then
System.IO.File.Delete(DosyaAdi)
End If
FileUpload1.PostedFile.SaveAs(DosyaAdi)

Kendi sitende tüm dosyaları kaydedeceğin bir klasör belirleyip yukarıdaki kodda C:\XXX yerine onu yazıp tüm yüklenen dosyaların o klasöre yerleştirilmesini sağlayabilirsin.
Gön: Ömer Çelik 

Uygulamanın çalıştığı sunucuya upload etmek için ftp bağlantısına gerek yok. Doğrudan Server.MapPath dosyaya erişim için full path bilgisini verecektir.

FileUpload1.SaveAs(Server.MapPath(FileUpload1.FileName));

Buna göre dosyayı, projenin bulunduğu yerde, mesela uploads gibi bir klasöre uplaod etmek içinse,

FileUpload1.SaveAs(Server.MapPath("upload\\"+FileUpload1.FileName));

kullanılabilir. Alt dizine erişmek için benzer şekilde ..\ kullanabilirsiniz.
Gön: Daron Yöndem 

Ben atlamışım server.mappath'i.

Teşekkürler Ömer.
Gön: Uygar ER 

:) Yardımlarınız için teşekkür ederim. İşime yaradı gerçekten .

Soru.Gonderen :
Gonderen.Mail :
Soru.Text :
Throw New Dikkat()!
*Sormak istediğiniz soru yukarıdaki soru başlığı ile alakalı değilse ana sayfadan yeni soru gönderiniz.
*Bu sayfadaki ana soru ile ilgili yorum gönderebilir veya yine ana soru ile ilgili yeni sorular sorabilirsiniz.