当前位置:首页 » 文件管理 » asp文件夹上传

asp文件夹上传

发布时间: 2024-11-28 14:41:13

㈠ asp.net用FileUpload控件上传.zip的压缩包到服务器之后自动解压到指定的文件夹下怎么实现

分为两步:
1.
文件上传到服务器某个目录,这一步比较简单;
2.
将文件进行解压到某个目录,这一步需要用到一个Ionic.Zip.dll。

㈡ ASP网站中,怎样把本地文件中的图片,上传到网站中的image文件夹中

Asp.Net上传文件示例(保存文件路径到数据库

把下面的代码保存为Upload.aspx即可运行(事先在同目录下建立一个Upload文件夹保存上传的文件,再建立一个数据库、表Upload,字段ID:自动编号,FilePath:文本型):

<%@Import Namespace =Namespace="System.Data"%>

<%'@Import Namespace="System.Data.OleDb"%> <!--Access数据库用这个-->

<%@Import Namespace =Namespace="System.Data.SqlClient"%> <!--SQL Server数据库用这个-->

<script language="VB" runat="server">

Sub UploadFile()Sub UploadFile(sender As Object, e As EventArgs)

Dim FileExt

FileExt = LCase(Right(Trim(FileUp.Value),3))

If FileExt = "gif" Or FileExt = "jpg" Or FileExt = "bmp" Or FileExt = "png" Or FileExt = "tif" Or LCase(Right(Trim(FileUp.Value),4)) = "jpeg" Then

If FileUp.PostedFile.ContentLength = 0 Then

FileInfo.Visible = False

Exit Sub

Else

FileInfo.Visible = True

End If

FSize.Text = CStr(FileUp.PostedFile.ContentLength)

FName.Text = FileUp.PostedFile.FileName

Dim FileSplit() As String = Split( FileUp.PostedFile.FileName, "\" )

Dim FileName As String = FileSplit(FileSplit.Length-1)

FileUp.PostedFile.SaveAs( Server.MapPath(".") & "\Upload\" & FileName )

'把文件路径写入数据库 By Dicky 2005-7-12 9:26:29

' Access数据库用这个

' Dim objCommand As OleDbCommand

' Dim objConnection As OleDbConnection

' objConnection = New OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0;Data Source="+Server.MapPath("Upload.mdb"))

' objCommand = New OleDbCommand("Insert Into Upload (FilePath) Values ('Upload/"+FileName+"')" , objConnection)

' Access数据库用这个

' SQL Server数据库用这个

Dim objCommand As SqlCommand

Dim objConnection As SqlConnection

objConnection = New SqlConnection("Server=localhost;Uid=sa;Pwd=;Database=Shat_edg")

objCommand = New SqlCommand("Insert Into Upload (FilePath) Values ('Upload/"+FileName+"')" , objConnection)

' SQL Server数据库用这个

objConnection.Open()

objCommand.ExecuteNonQuery()

objConnection.Close()

'把文件路径写入数据库 By Dicky 2005-7-12 9:26:29

Dim Exts() As String = Split( FileName, "." )

Dim Ext As String = LCase(Exts(Exts.Length-1))

If Ext <> "jpg" And Ext <> "jpeg" And Ext <> "gif" And Ext <> "txt" And Ext <> "htm" And Ext <> "html" Then

FDisplay.Visible = False

Else

FDisplay.Text = "<A Target='_blank' HREF='Upload/" & _

FileName & "'>上传文件</A>"

End If

Response.Write("上传成功!")

Else

' Msgbox("对不起,只能上传扩展名为gif、jpg、bmp、png、tif或jpeg等图片文件!",65,"a")

Response.Write("对不起,只能上传扩展名为gif、jpg、bmp、png、tif或jpeg等图片文件!")

End If

End Sub

</script>

<Html>

<head>

<title>文件上传</title>

</head>

<Body BgColor=White>

<H3>上传文件<Hr></H3>

<Form Name="Form1" Enctype="multipart/form-data" runat="server">

上传文件

<Input Type="File" id="FileUp" runat="server"><P>

<Asp:button id="Upload" OnClick="UploadFile" Text="Upload"

runat="server"/>

</form><Hr>

<Div id="FileInfo" Visible="False" runat="server">

上传文件名 <Asp:Label id="FName" runat="server"/><br>

上传文件大小 <Asp:Label id="FSize" runat="server"/><br>

<Asp:Label id="FDisplay" runat="server"/>

</Div>

</Body>

</Html>

㈢ asp网站上传图片功能,上传到文件夹并将目录存至access数据库库中,能给实例,或给个具体点的代码

Sub upfilttodir(formPath)
dim upload,file,formName,iCount
set upload=new upload_5xsoft ''建立上传对象
dim upFile()
dim I

if right(formPath,1)<>"/" then formPath=formPath&"/"

dim textfielda,textfieldb,textfieldc,selecta,selectb,checkbox,filea,fileb,filec

iCount=0

for each formName in upload.objFile ''列出所有上传了的文件
set file=upload.file(formName) ''生成一个文件对象
if file.FileSize>0 then ''如果 FileSize > 0 说明有文件数据
file.SaveAs Server.mappath(formPath&file.FileName) ''保存文件
response.write file.FilePath&file.FileName&" ("&file.FileSize&") => "&formPath&File.FileName&" Successful!<br>"
Redim Preserve upFile(iCount)
upFile(iCount)=formPath&File.FileName
iCount=iCount+1
'Conn.Execute "Insert Into [upload](filename,filesize,[update],cnstr) values('"&formPath&File.FileName&"',"&file.FileSize&",#"&Cdate(Date())&"#,'"&upload.form("textfielda")&"')"
end if
set file=nothing
next

files=Ubound(upFile)+1
Response.Write "共上传了"& iCount &"个文件:<br>"
for each formName in upload.objForm ''列出所有form数据
response.write formName&"="&upload.form(formName)&"<br>"
next
'for each formName in upload.objForm ''列出所有form数据
'response.write formName&"="&upload.form(formName)&"<br>"
set upload=nothing ''删除此对象
End sub
用法:
<%
Call upfilttodir("uploadfile/"& SESSION("ADMIN"))
Response.Write("<script language=javascript>alert('上传成功!\n您一共上传了"& iCount &"个文件。');location.href='listfile.asp?Currentpath=uploadfile/"& SESSION("ADMIN") &"'</script>")
%>
---------------------------------------
保存至数据库只需要在上传之后执行写入数据库的操作,——便是我代码中注释掉的那行:
'Conn.Execute "Insert Into [upload](filename,filesize,[update],cnstr) values('"&formPath&File.FileName&"',"&file.FileSize&",#"&Cdate(Date())&"#,'"&upload.form("textfielda")&"')"

㈣ 求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/

热点内容
sql数据结构 发布:2024-11-28 16:32:13 浏览:713
scratch编程自学 发布:2024-11-28 16:09:15 浏览:825
苏州cnc编程学徒招聘 发布:2024-11-28 16:07:44 浏览:610
linux中怎么搭建http服务器配置 发布:2024-11-28 16:04:17 浏览:291
缓存expires 发布:2024-11-28 16:02:27 浏览:383
图像的jpeg压缩matlab 发布:2024-11-28 16:02:05 浏览:940
androidcompilewith 发布:2024-11-28 16:00:19 浏览:435
访问跳转 发布:2024-11-28 15:54:44 浏览:698
算法对算 发布:2024-11-28 15:41:38 浏览:4
称重系统界面如何找配置项 发布:2024-11-28 15:28:29 浏览:570