|
// Copyright (c) 2010
// by OpenLight Group
// http://openlightgroup.net/
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
// documentation files (the "Software"), to deal in the Software without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and
// to permit persons to whom the Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all copies or substantial portions
// of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
// TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
//
// CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
using System;
using System.Linq;
using System.IO;
using PitchContour;
public partial class DownloadFile : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// Get parameters
string FileName = Request.QueryString["FileName"];
string FilePath = Request.QueryString["FilePath"];
// All parameters must have a value or return nothing
if (
FileName != "" &&
FilePath != ""
)
{
try
{
string path = MapPath(@"~\");
// Remove any .. to prevent backing up directories
FilePath = FilePath.Replace("..", "");
FileName = FileName.Replace("..", "");
string strPath = Path.Combine(path + FilePath, FileName);
// Return the file
Response.ClearHeaders();
Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", FileName));
Response.ClearContent();
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.ContentType = GetContentType(strPath);
FileStream sourceFile = new FileStream(strPath, FileMode.Open);
long FileSize;
FileSize = sourceFile.Length;
byte[] getContent = new byte[(int)FileSize];
sourceFile.Read(getContent, 0, (int)sourceFile.Length);
sourceFile.Close();
Response.BinaryWrite(getContent);
Response.Flush();
Response.Close();
}
catch (Exception ex)
{
lblDisplayFilesError.Text = ex.Message;
}
}
}
#region GetContentType
public string GetContentType(string strextension)
{
string contentType;
switch (strextension.ToLower())
{
case ".gif":
contentType = "image/gif";
break;
case ".jpg":
case ".jpeg":
contentType = "image/jpeg";
break;
case ".png":
contentType = "image/png";
break;
case ".doc":
contentType = "application/ms-word";
break;
case ".docx":
contentType = "application/vnd.ms-word.document.12";
break;
case ".pdf":
contentType = "application/pdf";
break;
case ".xls":
contentType = "application/vnd.ms-excel";
break;
case ".ppt":
contentType = "application/vnd.ms-powerpoint";
break;
case ".zip":
contentType = "application/zip";
break;
case ".txt":
contentType = "text/plain";
break;
case ".wav":
contentType = "audio/wav";
break;
default:
contentType = "application/octet-stream";
break;
}
return contentType;
}
#endregion
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.