因爲要做一個大文件上傳的功能,所以搜索了下。找到一個控件NeatUpload 而且這個空間是開源的 官網爲http://www.brettle.com/neatupload 於是到官網去下了控件。它裏面有demo的,倒騰了半天終於到騰出來了。哎。用別人的控件都用不來哈。傷心。
其實網上也有很多NeatUpload控件的使用例子。但是不知道爲什麼我按照他們的做法總是出錯。後來按照demo上面的代碼才倒騰出來。原本不看demo的原因就是它是英文的。哎。我討厭英文啊。。。
其實 用起來很簡單的 首先下載控件。然後添加對控件的引用。添加完畢之後我們可以在工具欄看到多了幾個控件了。我只用到ProgressBar和InputFile。然後就是託空間了。然後添加一個按鈕 text屬性設置爲 上傳。 雙擊寫上傳代碼。呵呵那我就把代碼貼上來。以防止我忘記怎麼用。哈哈
web.config配置文件裏面添加如下代碼:
<configuration>
<configSections>
<sectionGroup name="system.web">
<section name="neatUpload" type="Brettle.Web.NeatUpload.ConfigSectionHandler, Brettle.Web.NeatUpload" allowLocation="true" />
</sectionGroup>
</configSections>
<system.web>
<httpModules>
<!--上傳大檔-->
<add name="UploadHttpModule" type="Brettle.Web.NeatUpload.UploadHttpModule, Brettle.Web.NeatUpload"/>
</httpModules>
<!color="#008000">--useHttpModule="true" 要設true才能看到上傳狀態bar,預設是False-->
<neatUpload useHttpModule="true" maxNormalRequestLength="1048576" maxRequestLength="1048576" defaultProvider="FilesystemUploadStorageProvider">
<providers>
<add name="FilesystemUploadStorageProvider" type="Brettle.Web.NeatUpload.FilesystemUploadStorageProvider, Brettle.Web.NeatUpload"/>
</providers>
</neatUpload>
<httpRuntime maxRequestLength="1048576" executionTimeout="3600"/>
</system.web>
</configuration>
<configSections>
<sectionGroup name="system.web">
<section name="neatUpload" type="Brettle.Web.NeatUpload.ConfigSectionHandler, Brettle.Web.NeatUpload" allowLocation="true" />
</sectionGroup>
</configSections>
<system.web>
<httpModules>
<!--上傳大檔-->
<add name="UploadHttpModule" type="Brettle.Web.NeatUpload.UploadHttpModule, Brettle.Web.NeatUpload"/>
</httpModules>
<!color="#008000">--useHttpModule="true" 要設true才能看到上傳狀態bar,預設是False-->
<neatUpload useHttpModule="true" maxNormalRequestLength="1048576" maxRequestLength="1048576" defaultProvider="FilesystemUploadStorageProvider">
<providers>
<add name="FilesystemUploadStorageProvider" type="Brettle.Web.NeatUpload.FilesystemUploadStorageProvider, Brettle.Web.NeatUpload"/>
</providers>
</neatUpload>
<httpRuntime maxRequestLength="1048576" executionTimeout="3600"/>
</system.web>
</configuration>
button click事件代碼 protected void submitButton_Click(object sender, EventArgs e) {
if (IsValid) //這一句最重要我,害得我折騰了半天。。。。
{
//唯一檔名
string filename = Guid.NewGuid() + System.IO.Path.GetExtension(InputFile1.FileName);
//設定存檔路徑
string filefullname = System.IO.Path.Combine(Request.PhysicalApplicationPath + "\\files", filename);
//上傳檔案
InputFile1.MoveTo(filefullname, Brettle.Web.NeatUpload.MoveToOptions.Overwrite);
//顯示訊息
double size=Math.Round(InputFile1.ContentLength / 1024F,2);
Label1.Text = string.Format("來源:{0}({1}kb)<br>新檔名稱:{2}", InputFile1.FileName, size , filename);
}
}
if (IsValid) //這一句最重要我,害得我折騰了半天。。。。
{
//唯一檔名
string filename = Guid.NewGuid() + System.IO.Path.GetExtension(InputFile1.FileName);
//設定存檔路徑
string filefullname = System.IO.Path.Combine(Request.PhysicalApplicationPath + "\\files", filename);
//上傳檔案
InputFile1.MoveTo(filefullname, Brettle.Web.NeatUpload.MoveToOptions.Overwrite);
//顯示訊息
double size=Math.Round(InputFile1.ContentLength / 1024F,2);
Label1.Text = string.Format("來源:{0}({1}kb)<br>新檔名稱:{2}", InputFile1.FileName, size , filename);
}
}