文件管理 · 2022年8月8日

asp文件上传下载|ASP 如何实现文件下载

❶ ASP.NET用C#语言实现文件上传下载,求代码

写过一个mvc上传多图片的例子你可以看看

网页链接

❷ asp.net C# b/s 系统 怎么实现文件的上传下载。

FileUpload 这个控件是上传 FileUpload .saveAs(路径)方法把上传文件传到一个路径中,下载最简单的是直接把url路径连到你那个文件的路径就会直接下载

❸ asp.net如何实现上传文件到数据库并下载

网上有不少asp.net上传下载的代码,可以参考这里

http://pw.cnblogs.com/archive/2006/05/24/408427.html

主要的一句话在这里:

postedFile.SaveAs(phyPath+fileName);

文件是上传到服务器的,不是上传到数据库,至于文件路径,可以记录到数据库,也可以直接将链接写到下载点。

❹ 如何使用AspUpload组件上传文件

你好,试试以下的方法:一、摘要Asp组件有内置的、服务器安装时附带的,更多的是第三方提供的,今天来学习文件上传的其中一个组件aspupload组件使用方法。二、aspupload组件的下载、安装或注册 1、asp组件的下载、安装(1)可以从网上下载。 (2)直接双击后进行安装。AspUpload组件下载2、asp上传组件的功能 a.限制上载文件的大小 b.设置用户的权限 c.修改文件属性 d.同时上载多个文件 e.能够将文件保存到数据库中 f.支持文件删除,自动生成与服务器上文件不同名的文件 g.拥有管理权限的用户甚至可以使用该控件进行远程注册三、aspupload组件的简单应用1、实例一(1.asp):通过代码实现三个文件的上传功能。如下图所示: (1)静态页面:1个表单,三个文件域,一个按钮,其中表单form的动作如下。 (2)其中客户端文件要注意几点: * 文件上载提交表单(Form)的enctype必须指定为“multipart/form-data”* 语句表示上载文件域,用户可以在该域中输入或选定文件。 * 传递一个参数act(名称可自己取),其值可以自己随便定,目的是触发上传事件。(3)动态代码如下: 2、实例二(2.asp):修改程序1.asp,要求在上传文件后显示上传文件的文件名及大小。增加如下代码: response.write("文件1是:")response.write(upload.files(1).path)response.write("文件2是:")response.write(upload.files(2).path)response.write("文件3是:")response.write(upload.files(3).path) 说明:upload.files方法用来获取文件的相关属性,path是文件的路径,size是文件的大小。3、实例三(3.asp):修改程序2.asp,要求上传的三个文件大小不能超过5K,如果上传的文件已经存在则要求不覆盖文件。 在上传之前增加如下代码: upload.setmaxsize 5120,falseupload.overwritefiles=fals说明: (1)upload.setmaxsize 5120,false其功能为设置文件最大为5120字节,false参数说明当文件超过5120字节时则删除超过部分,true参数说明当文件超过5120字节时则出错。 (2)upload.overwritefiles=false,其功能表示文件不进行覆盖,如果上传同样文件名的文件,上传后文件名自动会在后面添加一个数字。四、自学第二个上传文件的组件 1、Lyfupload组件的下载 2、学习此组件的安装或注册 3、通过课本例子进行文件的上传五、问题 1、传到学校里服务器172.18.0.7运行时出现以下错误,Server.CreateObject 失败分析原因:学校服务器不支持aspupload上传组件 2、如果服务器不支持aspupload等上传组件,请大家使用无组件上传功能(编写代码),见书本上P322,此类代码比较复杂,同学们能够拿来使用,无须自己编写。3、大家在网上申请个人空间时要看清服务器支持哪些组件,这样有利于编写代码。

❺ 求ASP.NET WEB项目文件夹上传下载解决方案

ASP.NET上传文件用FileUpLoad就可以,但是对文件夹的操作却不能用FileUpLoad来实现。

下面这个示例便是使用ASP.NET来实现上传文件夹并对文件夹进行压缩以及解压。

ASP.NET页面设计:TextBox和Button按钮。

TextBox中需要自己受到输入文件夹的路径(包含文件夹),通过Button实现选择文件夹的问题还没有解决,暂时只能手动输入。

两种方法:生成rar和zip。

1.生成rar

using Microsoft.Win32;

using System.Diagnostics;

protected void Button1Click(object sender, EventArgs e)

{

RAR(@"E:95413594531GIS", "tmptest", @"E:95413594531");

}

///

///压缩文件

///

///需要压缩的文件夹或者单个文件

///生成压缩文件的文件名

///生成压缩文件保存路径

///

protected bool RAR(string DFilePath, string DRARName,string DRARPath)

{

String therar;

RegistryKey theReg;

Object theObj;

String theInfo;

ProcessStartInfo theStartInfo;

Process theProcess;

try

{

theReg = Registry.ClassesRoot.OpenSubKey(@"ApplicationsWinRAR.exeShellOpenCommand"); //注:未在注册表的根路径找到此路径

theObj = theReg.GetValue("");

therar = theObj.ToString();

theReg.Close();

therar = therar.Substring(1, therar.Length – 7);

theInfo = " a" + " " + DRARName + "" + DFilePath +" -ep1"; //命令 + 压缩后文件名 + 被压缩的文件或者路径

theStartInfo = new ProcessStartInfo();

theStartInfo.FileName = therar;

theStartInfo.Arguments = theInfo;

theStartInfo.WindowStyle = ProcessWindowStyle.Hidden;

theStartInfo.WorkingDirectory = DRARPath ; //RaR文件的存放目录。

theProcess = new Process();

theProcess.StartInfo = theStartInfo;

theProcess.Start();

theProcess.WaitForExit();

theProcess.Close();

return true;

}

catch (Exception ex)

{

return false;

}

}

///

///解压缩到指定文件夹

///

///压缩文件存在的目录

///压缩文件名称

///解压到文件夹

///

protected bool UnRAR(string RARFilePath,string RARFileName,string UnRARFilePath)

{

//解压缩

String therar;

RegistryKey theReg;

Object theObj;

String theInfo;

ProcessStartInfo theStartInfo;

Process theProcess;

try

{

theReg = Registry.ClassesRoot.OpenSubKey(@"ApplicationsWinRar.exeShellOpenCommand");

theObj = theReg.GetValue("");

therar = theObj.ToString();

theReg.Close();

therar = therar.Substring(1, therar.Length – 7);

theInfo = @" X " + " " + RARFilePath + RARFileName + " " + UnRARFilePath;

theStartInfo = new ProcessStartInfo();

theStartInfo.FileName = therar;

theStartInfo.Arguments = theInfo;

theStartInfo.WindowStyle = ProcessWindowStyle.Hidden;

theProcess = new Process();

theProcess.StartInfo = theStartInfo;

theProcess.Start();

return true;

}

catch (Exception ex)

{

return false;

}

}

注:这种方法在在电脑注册表中未找到应有的路径,未实现,仅供参考。

2.生成zip

通过调用类库ICSharpCode.SharpZipLib.dll

该类库可以从网上下载。也可以从本链接下载:SharpZipLib_0860_Bin.zip

增加两个类:Zip.cs和UnZip.cs

(1)Zip.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.IO;

using System.Collections;

using ICSharpCode.SharpZipLib.Checksums;

using ICSharpCode.SharpZipLib.Zip;

namespace UpLoad

{

/// <summary>

///功能:压缩文件

/// creator chaodongwang 2009-11-11

/// </summary>

public class Zip

{

/// <summary>

///压缩单个文件

/// </summary>

/// <param name="FileToZip">被压缩的文件名称(包含文件路径)</param>

/// <param name="ZipedFile">压缩后的文件名称(包含文件路径)</param>

/// <param name="CompressionLevel">压缩率0(无压缩)-9(压缩率最高)</param>

/// <param name="BlockSize">缓存大小</param>

public void ZipFile(string FileToZip, string ZipedFile, int CompressionLevel)

{

//如果文件没有找到,则报错

if (!System.IO.File.Exists(FileToZip))

{

throw new System.IO.FileNotFoundException("文件:" + FileToZip + "没有找到!");

}

if (ZipedFile == string.Empty)

{

ZipedFile = Path.GetFileNameWithoutExtension(FileToZip) + ".zip";

}

if (Path.GetExtension(ZipedFile) != ".zip")

{

ZipedFile = ZipedFile + ".zip";

}

////如果指定位置目录不存在,创建该目录

//string zipedDir = ZipedFile.Substring(0,ZipedFile.LastIndexOf("\"));

//if (!Directory.Exists(zipedDir))

//Directory.CreateDirectory(zipedDir);

//被压缩文件名称

string filename = FileToZip.Substring(FileToZip.LastIndexOf('\') + 1);

System.IO.FileStream StreamToZip = new System.IO.FileStream(FileToZip, System.IO.FileMode.Open, System.IO.FileAccess.Read);

System.IO.FileStream ZipFile = System.IO.File.Create(ZipedFile);

ZipOutputStream ZipStream = new ZipOutputStream(ZipFile);

ZipEntry ZipEntry = new ZipEntry(filename);

ZipStream.PutNextEntry(ZipEntry);

ZipStream.SetLevel(CompressionLevel);

byte[] buffer = new byte[2048];

System.Int32 size = StreamToZip.Read(buffer, 0, buffer.Length);

ZipStream.Write(buffer, 0, size);

try

{

while (size < StreamToZip.Length)

{

int sizeRead = StreamToZip.Read(buffer, 0, buffer.Length);

ZipStream.Write(buffer, 0, sizeRead);

size += sizeRead;

}

}

catch (System.Exception ex)

{

throw ex;

}

finally

{

ZipStream.Finish();

ZipStream.Close();

StreamToZip.Close();

}

}

/// <summary>

///压缩文件夹的方法

/// </summary>

public void ZipDir(string DirToZip, string ZipedFile, int CompressionLevel)

{

//压缩文件为空时默认与压缩文件夹同一级目录

if (ZipedFile == string.Empty)

{

ZipedFile = DirToZip.Substring(DirToZip.LastIndexOf("\") + 1);

ZipedFile = DirToZip.Substring(0, DirToZip.LastIndexOf("\")) +"\"+ ZipedFile+".zip";

}

if (Path.GetExtension(ZipedFile) != ".zip")

{

ZipedFile = ZipedFile + ".zip";

}

using (ZipOutputStream zipoutputstream = new ZipOutputStream(File.Create(ZipedFile)))

{

zipoutputstream.SetLevel(CompressionLevel);

Crc32 crc = new Crc32();

Hashtable fileList = getAllFies(DirToZip);

foreach (DictionaryEntry item in fileList)

{

FileStream fs = File.OpenRead(item.Key.ToString());

byte[] buffer = new byte[fs.Length];

fs.Read(buffer, 0, buffer.Length);

ZipEntry entry = new ZipEntry(item.Key.ToString().Substring(DirToZip.Length + 1));

entry.DateTime = (DateTime)item.Value;

entry.Size = fs.Length;

fs.Close();

crc.Reset();

crc.Update(buffer);

entry.Crc = crc.Value;

zipoutputstream.PutNextEntry(entry);

zipoutputstream.Write(buffer, 0, buffer.Length);

}

}

}

/// <summary>

///获取所有文件

/// </summary>

/// <returns></returns>

private Hashtable getAllFies(string dir)

{

Hashtable FilesList = new Hashtable();

DirectoryInfo fileDire = new DirectoryInfo(dir);

if (!fileDire.Exists)

{

throw new System.IO.FileNotFoundException("目录:" + fileDire.FullName + "没有找到!");

}

this.getAllDirFiles(fileDire, FilesList);

this.getAllDirsFiles(fileDire.GetDirectories(), FilesList);

return FilesList;

}

/// <summary>

///获取一个文件夹下的所有文件夹里的文件

/// </summary>

/// <param name="dirs"></param>

/// <param name="filesList"></param>

private void getAllDirsFiles(DirectoryInfo[] dirs, Hashtable filesList)

{

foreach (DirectoryInfo dir in dirs)

{

foreach (FileInfo file in dir.GetFiles("*.*"))

{

filesList.Add(file.FullName, file.LastWriteTime);

}

this.getAllDirsFiles(dir.GetDirectories(), filesList);

}

}

/// <summary>

///获取一个文件夹下的文件

/// </summary>

/// <param name="strDirName">目录名称</param>

/// <param name="filesList">文件列表HastTable</param>

private void getAllDirFiles(DirectoryInfo dir, Hashtable filesList)

{

foreach (FileInfo file in dir.GetFiles("*.*"))

{

filesList.Add(file.FullName, file.LastWriteTime);

}

}

}

}

(2)UnZip.cs

using System.Collections.Generic;

using System.Linq;

using System.Web;

/// <summary>

///解压文件

/// </summary>

using System;

using System.Text;

using System.Collections;

using System.IO;

using System.Diagnostics;

using System.Runtime.Serialization.Formatters.Binary;

using System.Data;

using ICSharpCode.SharpZipLib.Zip;

using ICSharpCode.SharpZipLib.Zip.Compression;

using ICSharpCode.SharpZipLib.Zip.Compression.Streams;

namespace UpLoad

{

/// <summary>

///功能:解压文件

/// creator chaodongwang 2009-11-11

/// </summary>

public class UnZipClass

{

/// <summary>

///功能:解压zip格式的文件。

/// </summary>

/// <param name="zipFilePath">压缩文件路径</param>

/// <param name="unZipDir">解压文件存放路径,为空时默认与压缩文件同一级目录下,跟压缩文件同名的文件夹</param>

/// <param name="err">出错信息</param>

/// <returns>解压是否成功</returns>

public void UnZip(string zipFilePath, string unZipDir)

{

if (zipFilePath == string.Empty)

{

throw new Exception("压缩文件不能为空!");

}

if (!File.Exists(zipFilePath))

{

throw new System.IO.FileNotFoundException("压缩文件不存在!");

}

//解压文件夹为空时默认与压缩文件同一级目录下,跟压缩文件同名的文件夹

if (unZipDir == string.Empty)

unZipDir = zipFilePath.Replace(Path.GetFileName(zipFilePath), Path.GetFileNameWithoutExtension(zipFilePath));

if (!unZipDir.EndsWith("\"))

unZipDir += "\";

if (!Directory.Exists(unZipDir))

Directory.CreateDirectory(unZipDir);

using (ZipInputStream s = new ZipInputStream(File.OpenRead(zipFilePath)))

{

ZipEntry theEntry;

while ((theEntry = s.GetNextEntry()) != null)

{

string directoryName = Path.GetDirectoryName(theEntry.Name);

string fileName = Path.GetFileName(theEntry.Name);

if (directoryName.Length > 0)

{

Directory.CreateDirectory(unZipDir + directoryName);

}

if (!directoryName.EndsWith("\"))

directoryName += "\";

if (fileName != String.Empty)

{

using (FileStream streamWriter = File.Create(unZipDir + theEntry.Name))

{

int size = 2048;

byte[] data = new byte[2048];

while (true)

{

size = s.Read(data, 0, data.Length);

if (size > 0)

{

streamWriter.Write(data, 0, size);

}

else

{

break;

}

}

}

}

}

}

}

}

}

以上这两个类库可以直接在程序里新建类库,然后复制粘贴,直接调用即可。

主程序代码如下所示:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Drawing;

using Microsoft.Win32;

using System.Diagnostics;

namespace UpLoad

{

public partial class UpLoadForm : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

}

protected void Button1_Click(object sender, EventArgs e)

{

if (TextBox1.Text == "") //如果输入为空,则弹出提示

{

this.Response.Write("<script>alert('输入为空,请重新输入!');window.opener.location.href=window.opener.location.href;</script>");

}

else

{

//压缩文件夹

string zipPath = TextBox1.Text.Trim(); //获取将要压缩的路径(包括文件夹)

string zipedPath = @"c: emp"; //压缩文件夹的路径(包括文件夹)

Zip Zc = new Zip();

Zc.ZipDir(zipPath, zipedPath, 6);

this.Response.Write("<script>alert('压缩成功!');window.opener.location.href=window.opener.location.href;</script>");

//解压文件夹

UnZipClass unZip = new UnZipClass();

unZip.UnZip(zipedPath+ ".zip", @"c: emp"); //要解压文件夹的路径(包括文件名)和解压路径(temp文件夹下的文件就是输入路径文件夹下的文件)

this.Response.Write("<script>alert('解压成功!');window.opener.location.href=window.opener.location.href;</script>");

}

}

}

}

本方法经过测试,均已实现。

另外,附上另外一种上传文件方法,经测试已实现,参考链接:http://blog.ncmem.com/wordpress/2019/11/20/net%e4%b8%8a%e4%bc%a0%e5%a4%a7%e6%96%87%e4%bb%b6%e7%9a%84%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88/

❻ asp.net如何把上传的文件下载下来

FileInfo info = new FileInfo(filePath); long fileSize = info.Length; Response.Clear(); Response.ContentType = "application/octet-stream"; Response.AddHeader("Content-Disposition", "attachement;filename=" + fileName); //指定文件大小 Response.AddHeader("Content-Length", fileSize.ToString()); Response.WriteFile(filePath, 0, fileSize); Response.Flush(); Response.Close(); filepath为你刚次上传的文件路径,fileName为文件名字,不懂可以再交流

❼ ASP 如何实现文件下载

你把要下载的文件名传到下载页面,用request("fileNameField")获取文件名下面这地方改一下iConcStr = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False" & _";Data Source=" & server.mappath(request("fileNameField"))点击回下载答的地方用<a href='下载页面路径?fileNameField=要下载的文件名'>下载文件</a>这个

❽ asp中文件的上传下载!

到网上找ASP无组件上传。前台下载,只要能把文件地址做一个超链接就可以了。自己动手吧。

❾ asp关于文件的上传和下载功能

//数据检查 begin string schType = string.Empty;//学校类型 string gradeName = string.Empty;// 年级名称 string subjectName = string.Empty;//科目名称 string videoName = this.txtName.Text.Trim();//视频名称 string imgTrueName = string.Empty; schType = this.ddlSchool.SelectedValue.ToString().Trim(); gradeName=this.ddlGrade.SelectedValue.ToString().Trim(); subjectName = this.txtSubject.Text.Trim(); videoName = this.txtName.Text.Trim(); if (schType == "请选择" || gradeName == "请选择") { Response.Write("<script>alert('请选择学校类型和年级!');</script>"); return; } if (subjectName=="") { Response.Write("<script>alert('请输入视频对应的科目!');</script>"); return; } if (videoName == "") { Response.Write("<script>alert('请输入视频的名称!');</script>"); return; } if ((this.fudFile.PostedFile.FileName == null) || (this.fudFile.PostedFile.FileName == "")) { Response.Write("<script>alert('请选择需上传的视频文件!');</script>"); return; } if ((this.fudImg.PostedFile.FileName == null) || (this.fudImg.PostedFile.FileName == "")) { Response.Write("<script>alert('请选择需上传的图片文件!');</script>"); return; } FileInfo fileTag = new FileInfo(this.fudFile.PostedFile.FileName); string fileType = fileTag.Extension; string fileName=fileTag.Name;// 文件物理名称 if (fileType.ToLower() != ".flv") { Response.Write("<script>alert('请确保您选择的是flv文件!');</script>"); return; } FileInfo imgFileTag = new FileInfo(this.fudImg.PostedFile.FileName); string imgFileType = imgFileTag.Extension; if (imgFileType.ToLower() != ".jpg" && imgFileType.ToLower() != ".bmp" && imgFileType.ToLower() != ".jpeg" && imgFileType.ToLower() != ".gif" && imgFileType.ToLower() != ".png") { Response.Write("<script>alert('请确保您选择的是图片文件!');</script>"); return; } //数据检查 end //string physicalPath = this.Page.MapPath(@"./UploadFileFolder"); string physicalPath = Server.MapPath("\\images\\UploadExperimentVideos").ToString(); string imgPhysicalPath = Server.MapPath("\\images\\VideoImages").ToString(); DateTime uploadTime = DateTime.Now; string year = DateTime.Now.Year.ToString(); string month = DateTime.Now.Month.ToString(); string date = DateTime.Now.Day.ToString(); string hour = DateTime.Now.Hour.ToString(); string minute = DateTime.Now.Minute.ToString(); string second = DateTime.Now.Second.ToString(); string fileTrueName ="video"+ year + month + date + hour + minute + second + fileType;//文件绝对名称 string imgFileTrueName = "img" + year + month + date + hour + minute + second + imgFileType;//图片绝对名称 string path_fileName = physicalPath + "/" + fileTrueName; string path_imgFileName = imgPhysicalPath + "/" + imgFileTrueName; if (File.Exists(path_fileName)) { File.Delete(path_fileName); } SqlParameter[] spl ={ new SqlParameter("@schType",SqlDbType.VarChar,50), new SqlParameter("@gradeName",SqlDbType.VarChar,50), new SqlParameter("@subjectName",SqlDbType.VarChar,250), new SqlParameter("@videoTrueName",SqlDbType.VarChar,250), new SqlParameter("@videoName",SqlDbType.VarChar,250), new SqlParameter("@imgTrueName",SqlDbType.VarChar,250), new SqlParameter("@ret",SqlDbType.Int,4) }; spl[0].Value = schType; spl[1].Value = gradeName; spl[2].Value = subjectName; spl[3].Value = fileTrueName; spl[4].Value = videoName; spl[5].Value = imgFileTrueName; spl[6].Direction = ParameterDirection.Output; Dbhelper.SQLHelper.GetDataTable("SQLCont", CommandType.StoredProcere, spl); int ret=Convert.ToInt32(spl[6].Value.ToString()); if (ret == 1) { fudFile.PostedFile.SaveAs(path_fileName); fudImg.PostedFile.SaveAs(path_imgFileName); BindData(); Response.Write("<script>alert('视频上传成功!');</script>"); return; } if (ret == 3) { Response.Write("<script>alert('视频上传重复!');</script>"); return; } else { Response.Write("<script>alert('视频上传失败!');</script>"); return; }\\按你的需求做适当修改

❿ 求ASP上传下载(Word,Excel和RAR)代码! 我是一个初学者请各位高手多多指点

试试看风声下载组件,或者木目下载组件。让后用java代码把地址自动填入道表单中。点击提交是提交表单中的地址