1
我正在使用Response.TransmitFile()從C驅動器上的文件夾下載zip文件夾。該文件夾下載正常,我得到的文件在我的下載文件夾。但是,問題出在我的下載文件夾中,一個壓縮文件具有asp頁面的名稱,而裏面是我想要下載的文件夾。另一個問題是我在上傳的zip文件夾的末尾附加了一個DataTime,但日期不在文件夾名稱的末尾。ASP使用TransmitFile下載文件()
我上傳的代碼如下所示:
string pnq = HttpContext.Current.Request.Url.PathAndQuery;
string url = HttpContext.Current.Request.Url.AbsoluteUri.Replace(pnq, "/");
if (FileUpload1.HasFile)
{
var filename = FileUpload1.PostedFile.FileName;
var uriID = Guid.NewGuid().ToString();
var password = System.Web.Security.Membership.GeneratePassword(7, 2);
filename = filename.Remove(filename.Count() - 4) + "-" + DateTime.Now.ToShortDateString() + ".zip";
filename = filename.Replace(" ", "-");
filename = filename.Replace("/", "-");
FileUpload1.SaveAs("C:\\Uploads\\" + filename);
lblUri.Text = url + "UICDownload.aspx?fileID=" + uriID;
lblPassword.Text = password;
string file = MapPath("~/Sample.xml");
XDocument doc = XDocument.Load(file);
doc.Root.Add(new XElement("File", new XElement("name", filename), new XElement("uriID", uriID), new XElement("password", password)));
XElement name = new XElement("name", filename);
doc.Save(file);
}
我的下載代碼如下所示:
var text = Request.QueryString["fileID"];
string file = MapPath("~/Sample.xml");
XDocument doc = XDocument.Load(file);
var node = doc.Document.Descendants("uriID").FirstOrDefault(u => u.Value.Equals(text));
var filenode = node.Ancestors("File").First();
var tempname = filenode.Element("name");
var filename = tempname.Value.ToString();
var filePassword = filenode.Element("password");
if (filePassword.Value.ToString() == tbPassword.Text)
{
Response.Clear();
Response.ContentType = "application/zip";
Response.AppendHeader("Content-Disposition", "attachment; fileID=" + text);
Response.TransmitFile("C:\\Uploads\\" + filename);
Response.End();
}
XML文檔即時保存到看起來像這樣:
<?xml version="1.0" encoding="utf-8"?>
<rootElement>
<File>
<name>Pictures-21-06-2013.zip</name>
<uriID>96e1253b-634b-498a-b062-61a1a097ee3f</uriID>
<password>%zFxRr|</password>
</File>
<File>
<name>Test1-21-06-2013.zip</name>
<uriID>44d3d2c8-5c19-4f79-a5e2-66bb023a4d5e</uriID>
<password>{hik6.e</password>
</File>
請歡迎任何建議,並讓我知道你是否希望我顯示任何其他代碼。另外,當文件上傳到C:\ Uploads文件夾時,zip文件夾的名稱末尾會有日期。
對於zip文件的嵌套,如果壓縮的文件夾,然後它會創建一個嵌套的zip文件夾裏面。當你創建壓縮文件時,只需要壓縮文件(希望有意義?) –
謝謝,你已經完成了它的工作 –