當前位置:首頁 » 網頁前端 » web文件夾上傳
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

web文件夾上傳

發布時間: 2022-09-07 16:44:15

Ⅰ 如何將Web文件夾中的內容上傳到伺服器中

從程序上來說,這個其實就是創建文件夾和上傳文件的功能。
通過程序,遍歷文件夾中的所有文件夾,在伺服器上創建,遍歷文件夾包括子文件夾中的所有文件,通過程序上傳到伺服器相應的文件夾中。

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

Ⅲ JAVA WEB項目文件夾上傳下載求思路

大概思路就是,前端將文件分片,然後每次訪問上傳介面的時候,向後端傳入參數:當前為第幾塊文件,和分片總數

Ⅳ 將web文件夾內的所有文件和文件夾上傳並覆蓋到織夢的安裝目錄(模板文件貌似不再install)

install是安裝文件,安裝完都可以刪除的。模板怎麼會在這。。
templets里才是模板文件。。

Ⅳ 求JAVA WEB項目文件夾上傳下載代碼

簡單談一下關於文件上傳幾個步驟
1.創建html頁面的submit事件,在input框中type必須要選擇filepath,這樣子第一步可以選擇要傳的文件
2.創建fileservlet類,來對該頁面做出響應
3.uploadfile類來進行文件上傳的邏輯處理,實例文件工廠類對象,然後再從中產生文件對象,來接受上傳文件的處理

Ⅵ 將web文件夾內的所有文件夾上傳並覆蓋到織夢的安裝目錄啥意思

有些網站的站長比較懶,懶得挨個去改說明,所以模板安裝說明是統一的,而模板文件卻是不一樣,不過都是那點東西。
找到templets及其同目錄其他文件夾,一並上傳到網站根目錄。

Ⅶ 求JAVA WEB項目文件夾上傳下載方法

兩種實現方式,一種是藉助FTP伺服器實現上傳下載,引入相應的jar包,直接拷貝網上現成的代碼,另一種通過原生的代碼,讀取文件夾及裡面的文件,通過io流處理,存放到指定地址,或資料庫設計一個大欄位,存放二進制流數據

Ⅷ 使用FTP工具上傳Web文件到您的主機/webroot/文件夾下,這步該怎麼操作,完全小白

圖形化的直接用滑鼠拖就行了。
前提是先登陸。
如果是命令行的,你就一個文件一個文件的put吧