❶ 如何通过WebService批量上传多个大文件
WinForm 程序开发
WinForm是·Net开发平台中对Windows Form的一种称谓。新增WinForm程序项目,添加文件上传服务引用。
3.1. Winform 程序实现效果
程序界面简单设计为:选择文件按钮,选择文件列表,上传文件按钮、上传信息及上传进度。
3.2. Winform 上传文件效果
示例演示:选择两大于4MB文件进行上传,上传成功。
3.3. 文件上传关键源码
localhost.WebService mWebService = new WinTest.localhost.WebService();
mWebService.CookieContainer = new System.Net.CookieContainer();
mWebService.Timeout =- 1;
对 XML Web services 的同步调用的超时(以毫秒为单位)。默认为 100000 毫秒。提示:如果将 Timeout 属性设置为 Timeout =-1,则指示该请求无超时。
❷ 文档管理系统的设计与实现。jsp实现一个能对文档进行上传、下载、分类、统计、维护等功能的系统。
文档管理系统的设计与实现(源程序+论文+开题报告+答辩稿)
可以帮你做
你可以网络下我的名字
就可以了的
❸ 如何通过WebService批量上传多个大文件
采用接收字节的方式开发Web Service,提供是创建还是累加参数,根据参数将文件字节写入文件中。示例代码如下:
❹ 项目文档管理
会博通综合文档管理系统
工程项目文档管理分类:
一、监理文件材料:
1、监理规划
2、监理月报中的有关质量问题
3、监理会议纪要中的有关质量问题
4、进度控制
5、质量控制
6、造价控制
7、分包资质
8、监理通知
9、合同与其他事项管理
10、监理工作总结
二、施工文件材料:
土木工程
1、土木工程
①施工技术准备文件
②施工现场准备
③地基处理记录
④工程图纸变更记录
⑤施工材料质量证明及复试试验报告
⑥施工试验记录
⑦隐蔽工程检查记录
⑧施工记录
2、电气、给排水、消防、采暖、通风、空调、燃气、建筑智能化、电梯工程
①一般施工记录
②图纸变更记录
③设备、产品质量检查、安装记录
④预检记录
⑤隐蔽工程检查记录
⑥施工试验记录
⑦质量事故处理记录
⑧工程质量检验记录
三、竣工验收文件材料:
1、工程竣工总结
①工程概况表
②工程竣工总结
2、竣工验收记录
(1)建筑安装工程
①单位(子单位)工程质量验收记录
②竣工验收证明书
③竣工验收报告
④竣工验收备案表(包括各专项验收认可文件)
⑤工程质量保修书
(2)市政基础设施工程
①单位工程质量评定表及报验单
②竣工验收证明书
③竣工验收报告
④竣工验收备案表(包括各专项验收认可文件)
⑤工程质量保修书
四、竣工图:
1、综合竣工图
①综合图
②室外专业图
2、专业竣工图
①建筑竣工图
②结构竣工图
③装修(装饰)工程竣工图
④电气工程(智能化工程)竣工图
⑤给排水工程(消防工程)竣工图
⑥采暖通风空调工程竣工图
⑦燃气工程竣工图
五、工程竣工结算文件材料:
施工单位决算书、监理单位初审书、跟踪审计初审书、审计部门审定书以及工程竣工结算的全部资料。
六、甲供材文件材料:
甲供材招标、议标、投标文件、合同文件、招标评标记录文件。
七、在建工程月报表统计文件材料
在建工程月报表统计工作由项目负责人在每月28日之前将各工程月报表报至档案员,报表内容包括工程形象进度、当月完成产值,并附工作量计算书。
八、在工程建设中使用计算机、数码相机、数码摄像机等现代技术手段形成的文件材料(电子文件)。
❺ 求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表单提交里面的文件上传,用同步的方式好还是用异步的好啊
你好,很高兴回答你的问题。
这里做成异步比较好。如果同步的话,遇到文件大的话,表单提交会很慢,体验非常不好。
如果有帮助到你,请点击采纳。
❼ 请教一套完整的项目设计流程和相关文档
我已经发到你的邮箱去了,你看下,如果还有什么疑问就扣我!352870039
❽ 本人在做设计,用的是JSP技术,要将一些文档上传到网络上的一个指定的地方,并且可以下载下来,怎样做
看你的描述,你应该是不懂技术的,所以就不给你说原理啦。
建议去网上搜个现成的例子来用吧,这个系统网上有很多。
你可以这么搜:”jsp 文件上传 源码“