Jag har två frågor för ovanlighetens skull:) för ner laddning kan ändra response strömen. mha response.binarywrite Det funkar kanon:) Men hur kan jag ändra "ContentType" beroende på vad för fil jag ska ladda ner? Sen när jag laddar ner en fil får jag " _ " underscoore framför namnet, vad kan det bero på? du har ett mellanslag efter filename= som du nog inte ska ha, testa att ta bort det. För övrigt finns klassen System.IO.Path för att ta reda på filnamn, betydligt bättre än att sitta med substring ;) Det hjälpte inte, jag får fortfarande underscoore framför. Men egentligen kvittar det, man kan ju lätt ändra namnet själv. Har du bytt till att köra med system.io.path istället? För det ser nämligen ut att finnas ett fel i fin kod för att plocka ut filnamnet.. Hej Oskar!Ladda ner och server.mappath
Hur kan jag skriva för att få reda på om man är i roten med MapPath? Normalt skriver man ju Server.MapPath("Mapp");
Kan jag på nåt sätt göra så det går att ladda ner en fil genom att klicka på en länk? Jag har testat med response.redirect, med det funkar ju inte om det är en html-sida till exempel. Har även försökt med DownloadFile, men jag får inte til ldet riktigt.
<code>
protected void ibDownLoad_Click(object sender, GridViewCommandEventArgs e)
{
string path = "";
if (e.CommandName == "show")
{
if (!User.IsInRole("admin"))
{
path = e.CommandArgument.ToString();
int i = path.IndexOf("users");
path = path.Substring(i);
path = path.Replace("\\", "/");
path = "http://www.domän.se/" + path;
}
else
{
path = e.CommandArgument.ToString();
int i = path.IndexOf("httpdocs");
path = path.Substring(i + 9);
path = path.Replace("\\", "/");
path = "http://www.domän.se/" + path;
}
WebClient client = new WebClient();
client.DownloadFile(path, @"C:\testFolder\aboutPage.aspx");
}
}
</code>Sv: Ladda ner och server.mappath
i den här artikeln finns ett enkelt exempel
http://www.eggheadcafe.com/articles/20011006.aspSv:Ladda ner och server.mappath
<code>
if (e.CommandName == "show")
{
string path = e.CommandArgument.ToString();
int i = path.LastIndexOf("\\");
string fileName = path.Substring(i);
FileStream MyFileStream = new FileStream(path, FileMode.Open);
long FileSize;
FileSize = MyFileStream.Length;
byte[] Buffer = new byte[(int)FileSize];
MyFileStream.Read(Buffer, 0, (int)MyFileStream.Length);
MyFileStream.Close();
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment; filename= "+ fileName);
Response.BinaryWrite(Buffer);
}
</code>Sv: Ladda ner och server.mappath
ContentType får du ta reda på själv, ett alternativ till det är att alltid skicka allting som application/octet-streamSv:Ladda ner och server.mappath
Sv: Ladda ner och server.mappath
Sv:Ladda ner och server.mappath
Jag glömde skriva att jag använder Path istället. Vad är fel i koden?