我想从服务器下载文件到本地主机.
我有一个网络代码应该工作但不工作
protected void Button4_Click(object sender, EventArgs e) { //To Get the physical Path of the file(test.txt) string filepath = Server.MapPath("test.txt"); // Create New instance of FileInfo class to get the properties of the file being downloaded FileInfo myfile = new FileInfo(filepath); // Checking if file exists if (myfile.Exists) { // Clear the content of the response Response.ClearContent(); // Add the file name and attachment, which will force the open/cancel/save dialog box to show, to the header Response.AddHeader("Content-Disposition", "attachment; filename=" + myfile.Name); // Add the file size into the response header Response.AddHeader("Content-Length", myfile.Length.ToString()); // Set the ContentType Response.ContentType = ReturnExtension(myfile.Extension.ToLower()); // Write the file into the response (TransmitFile is for ASP.NET 2.0. In ASP.NET 1.1 you have to use WriteFile instead) Response.TransmitFile(myfile.FullName); // End the response Response.End(); } } private string ReturnExtension(string fileExtension) { switch (fileExtension) { case ".htm": case ".html": case ".log": return "text/HTML"; case ".txt": return "text/plain"; case ".doc": return "application/ms-word"; case ".tiff": case ".tif": return "image/tiff"; case ".asf": return "video/x-ms-asf"; case ".avi": return "video/avi"; case ".zip": return "application/zip"; case ".xls": case ".csv": return "application/vnd.ms-excel"; case ".gif": return "image/gif"; case ".jpg": case "jpeg": return "image/jpeg"; case ".bmp": return "image/bmp"; case ".wav": return "audio/wav"; case ".mp3": return "audio/mpeg3"; case ".mpg": case "mpeg": return "video/mpeg"; case ".rtf": return "application/rtf"; case ".asp": return "text/asp"; case ".pdf": return "application/pdf"; case ".fdf": return "application/vnd.fdf"; case ".ppt": return "application/mspowerpoint"; case ".dwg": return "image/vnd.dwg"; case ".msg": return "application/msoutlook"; case ".xml": case ".sdxl": return "application/xml"; case ".xdp": return "application/vnd.adobe.xdp+xml"; default: return "application/octet-stream"; } }
现在当点击按钮时,文件应该从服务器下载到本地主机......但似乎没有发生任何事情......
我在服务器的桌面上有test.txt ...保存文件选项也不在客户端..
我发布文件并将其放在服务器的inetpub文件夹中,并从客户端运行GUI ..除此之外一切正常...
任何建议......请帮助
这个程序下载一个文件,如果它存在于inetpub文件夹中..而不是我想从服务器内的任何位置下载...
??
写入按钮单击您要下载文件
protected void Button1_Click(object sender, EventArgs e) { string allowedExtensions = ".mp4,.pdf,.m4v,.gif,.jpg,.png,.swf,.css,.htm,.html,.txt"; // edit this list to allow file types - do not allow sensitive file types like .cs or .config string fileName = "Images/apple.jpg"; string filePath = ""; //if (Request.QueryString["file"] != null) fileName = Request.QueryString["file"].ToString(); //if (Request.QueryString["path"] != null) filePath = Request.QueryString["path"].ToString(); if (fileName != "" && fileName.IndexOf(".") > 0) { bool extensionAllowed = false; // get file extension string fileExtension = fileName.Substring(fileName.LastIndexOf('.'), fileName.Length - fileName.LastIndexOf('.')); // check that we are allowed to download this file extension string[] extensions = allowedExtensions.Split(','); for (int a = 0; a < extensions.Length; a++) { if (extensions[a] == fileExtension) { extensionAllowed = true; break; } } if (extensionAllowed) { // check to see that the file exists if (File.Exists(Server.MapPath(filePath + '/' + fileName))) { // for iphones and ipads, this script can cause problems - especially when trying to view videos, so we will redirect to file if on iphone/ipad // if (Request.UserAgent.ToLower().Contains("iphone") || Request.UserAgent.ToLower().Contains("ipad")) { Response.Redirect(filePath + '/' + fileName); } Response.Clear(); Response.AddHeader("content-disposition", "attachment;filename=" + fileName); Response.WriteFile(Server.MapPath(filePath + '/' + fileName)); Response.End(); } else { litMessage.Text = "File could not be found"; } } else { litMessage.Text = "File extension is not allowed"; } } else { litMessage.Text = "Error - no file to download"; } }