❶ 求c#.net大文件上傳解決方案支持分片斷點上傳
我簡單點抄說一下我的想法:
使用base64將大襲文件進行字元串處理,然後進行將字元串進行按規則進行分組
{ Key:'1',Data='byte',Index:1,EndStatus:'0' }
{ Key:'1',Data='byte',Index:2 ,EndStatus:'1' }
伺服器使用redis或者其他緩存工具,伺服器發現了EndStatus=1時,讀取Redis中符合Key的集合數據,排序組裝,然後byte轉Stream存儲文件
注意的點:B端文件轉byte大小會增加30%,伺服器端需要解開Request的最大請求大小
❷ 急求asp.net斷點續傳(上傳),要能有代碼的,可以調試成功的,急求!!!
我也學習下 等答案 斷點續傳
❸ .net文件分片上傳,斷點續傳的辦法
<%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="index.aspx.cs"Inherits="up6.index"%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html; charset=gb2312"/>
<title>up6-多標簽演示頁面</title>
<linkhref="js/up6.css"type="text/css"rel="Stylesheet"charset="gb2312"/>
<scripttype="text/javascript"src="js/jquery-1.4.min.js"></script>
<scripttype="text/javascript"src="js/json2.min.js"charset="utf-8"></script>
<scripttype="text/javascript"src="js/up6.config.js"charset="utf-8"></script>
<scripttype="text/javascript"src="js/up6.app.js"charset="utf-8"></script>
<scripttype="text/javascript"src="js/up6.edge.js"charset="utf-8"></script>
<scripttype="text/javascript"src="js/up6.file.js"charset="utf-8"></script>
<scripttype="text/javascript"src="js/up6.folder.js"charset="utf-8"></script>
<scripttype="text/javascript"src="js/up6.js"charset="utf-8"></script>
<scriptlanguage="javascript"type="text/javascript">
varcbMgr =newHttpUploaderMgr();
cbMgr.event.md5Complete =function(obj, md5) {/*alert(md5);*/};
cbMgr.event.fileComplete =function(obj) {/*alert(obj.fileSvr.pathSvr);*/};
cbMgr.event.queueComplete =function() { $(document.body).append("隊列完成<br/>"); }
cbMgr.event.addFdError =function(jv) { alert("本地路徑不存在:"+ jv.path); };
cbMgr.event.scanComplete =function(obj) {/*alert(obj.folderSvr.pathLoc);*/};
cbMgr.Config["Cookie"] ='ASP.NET_SessionId=<%=Session.SessionID%>';
cbMgr.Config.Fields["uid"] = 0;
$(function()
{
cbMgr.load_to("FilePanel");
//上傳指定文件
$("#btnUpF").click(function() {
varpath = $("#filePath").val();
cbMgr.app.addFile({ pathLoc: path });
});
//上傳指定目錄
$("#btnUpFd").click(function() {
varpath = $("#folderPath").val();
cbMgr.app.addFolder({ pathLoc: path });
});
});
</script>
</head>
<body>
<p>up6多標簽上傳演示頁面</p>
<p><ahref="db/clear.aspx"target="_blank">清空資料庫</a></p>
<p><ahref="filemgr/index.aspx"target="_blank">文件管理器演示</a></p>
<p><ahref="index2.aspx"target="_blank">單面板演示</a></p>
<p><ahref="down2/index.htm"target="_blank">打開下載頁面</a></p>
<p><ahref="index-single.htm"target="_blank">單文件上傳演示</a></p>
<p>
文件路徑:<inputid="filePath"type="text"size="50"value="D:\360safe-inst.exe"/>
<inputid="btnUpF"type="button"value="上傳本地文件"/>
</p>
<p>
目錄路徑:<inputid="folderPath"type="text"size="50"value="C:\Users\Administrator\Desktop\test"/>
<inputid="btnUpFd"type="button"value="上傳本地目錄"/>
</p>
<divid="FilePanel"></div>
<divid="msg"></div>
</body>
</html>
代碼部分
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace WebPortal
{
/// <summary>
/// UpLoad的摘要說明。
///實現多文件上傳
/// </summary>
publicclass Upload: System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button UploadButton;
protected System.Web.UI.WebControls.Label strStatus;
privatevoid Page_Load(object sender, System.EventArgs e)
{
///在此處放置用戶代碼以初始化頁面
if(this.IsPostBack)this.SaveImages();
}
private Boolean SaveImages()
{
///'遍歷File表單元素
HttpFileCollection files= HttpContext.Current.Request.Files;
/// '狀態信息
System.Text.StringBuilder strMsg=new System.Text.StringBuilder();
strMsg.Append("上傳的文件分別是:<hr color=red>");
try
{
for(int iFile= 0; iFile< files.Count; iFile++)
{
///'檢查文件擴展名字
HttpPostedFile postedFile= files[iFile];
string fileName, fileExtension;
fileName= System.IO.Path.GetFileName(postedFile.FileName);
if(fileName!="")
{
fileExtension= System.IO.Path.GetExtension(fileName);
strMsg.Append("上傳的文件類型:"+ postedFile.ContentType.ToString()+"<br>");
strMsg.Append("客戶端文件地址:"+ postedFile.FileName+"<br>");
strMsg.Append("上傳文件的文件名:"+ fileName+"<br>");
strMsg.Append("上傳文件的擴展名:"+ fileExtension+"<br><hr>");
///'可根據擴展名字的不同保存到不同的文件夾
///注意:可能要修改你的文件夾的匿名寫入許可權。
postedFile.SaveAs(System.Web.HttpContext.Current.Request.MapPath("images/")+ fileName);
}
}
strStatus.Text= strMsg.ToString();
returntrue;
}
catch(System.Exception Ex)
{
strStatus.Text= Ex.Message;
returnfalse;
}
}
#region Web窗體設計器生成的代碼
overrideprotectedvoid OnInit(EventArgs e)
{
//
// CODEGEN:該調用是 ASP.NET Web 窗體設計器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
///設計器支持所需的方法 - 不要使用代碼編輯器修改
///此方法的內容。
/// </summary>
privatevoid InitializeComponent()
{
this.ID="Upload";
this.Load+=new System.EventHandler(this.Page_Load);
}
#endregion
}
}
選擇文件夾
❹ 求c#大文件上傳解決方案支持分片斷點上傳
/// <summary>
/// 斷點續傳,每次調用該方法會從源文件斷點續傳
/// </summary>
/// <param name="fullName">文件完整路徑</param>
private void ReadFile(string fullName)
{
//文件名稱
string fileName = Path.GetFileName(fullName);
//保存文件完整路徑
string saveFullName = Path.Combine(@"D:\systemInfo", fileName);
FileStream write = new FileStream(saveFullName, FileMode.Append, FileAccess.Write, FileShare.ReadWrite);
FileStream read = File.OpenRead(fullName);// 以讀的方式打開
//移動讀取流的位置
read.Seek(write.Length, SeekOrigin.Begin);
byte[] bytes = new byte[1024];
int length = 0;
while ((length = read.Read(bytes, 0, bytes.Length)) > 0)
{
write.Write(bytes, 0, length);
}
write.Close();
read.Close();
}
❺ 求C#.NET 超大文件上傳解決方案:分片斷點上傳(一)
超大文件上傳方案可以用一些相關的一些網路網盤等超級會員和一些其他的會員才能解決。
❻ asp.net 如何實現大文件斷點上傳功能急用!!!
樓主可以看下這樣來的思源路。首先把大文件位元組化,把這些位元組分成一塊一塊的,比如1000個為一塊,最後一塊可能不足1000,然後通過循環一次一次的發到伺服器上,伺服器上將接收到的數據寫在一個臨時文件中,每次接收到就寫在這個文件末尾,如果中途出了錯,就可以讀取這個文件判斷是發到第幾塊了,下次就可以接著發,一直到所有的塊都發到伺服器上就把這個臨時文件另存到指定目錄去就可以了。希望採納。
❼ 求asp.net HTTP 斷點續傳 上傳 完整版的程序
網路搜索 「C# 斷點續傳」,希望搜索結果能夠幫到你。
❽ c#文件分片上傳,斷點續傳
vs2012 實現多文件分片斷點續傳。前端webupload md5計算加密文件,分片發送文件。後端驗證組合文件。
❾ 求C#.NET 以上超大文件上傳和斷點續傳伺服器的實現
我以前寫過來這樣的例子,用自的Socket TCP協議,多大文件都可以,只是時間問題,主要是斷點續傳,傳輸文件時,客戶端請求一下伺服器端,伺服器端返回當前文件的已經接收的位元組大小,客戶端收到伺服器端已經接收的位元組大小時,就通過指針移動你要傳輸的文件位元組位置為接收的位元組大小的位置,繼續通過Socket傳輸,無論是Http還是什麼原理差不多
❿ 請問C#.Net中,可不可以實現點對點的文件 斷點續傳 如何實現
非常期待高人。。。