ASP.net實現上傳APK檔案並且下載APK
阿新 • • 發佈:2019-02-18
前言:文中所講僅為個人學習使用過程中的一些經驗和想法,望多提意見。
一,實現上傳APK檔案的功能
介面cs.html程式碼:
controller中的程式碼:<strong> </strong><span style="font-weight: bold; white-space: pre;"> </span>@*enctype= "multipart/form-data"是必需有的,否則action接收不到相應的file*@ @using (Html.BeginForm("AddVersion", "Home", FormMethod.Post, new { enctype = "multipart/form-data" })) { <label>VerName:</label> @Html.TextBox("VerName", "", new { style="width:100%;"}); <br/> <label>VerCode:</label> @Html.TextBox("VerCode", "", new { style = "width:100%;"}); <br/> <label>DownLoadUrl:</label> @Html.TextBox("DownLoadUrl", "", new { style = "width:100%;"}); <br/> <label>DesCription:</label> @Html.TextBox("DesCription", "", new { style="width:100%;"}); <br/> <span>檔案上傳</span> <br> <input type="file" name ="file" /> <br/> <input type="submit" value="提交"/> }
這樣就可以實現檔案的上傳功能,沒有使用JQuery,相對容易點。<span style="white-space:pre"> </span>if (file == null) { return Content("沒有檔案!", "text/plain"); } var fileName = Path.Combine(Request.MapPath("~/Upload/App"), Path.GetFileName(file.FileName)); try { file.SaveAs(fileName); //tm.AttachmentPath = fileName;//得到全部model資訊 ///tm.AttachmentPath = "../upload/" + Path.GetFileName(file.FileName); //return Content("上傳成功!", "text/plain"); // return RedirectToAction("Show", tm); return RedirectToAction("EditVersion"); } catch { return Content("上傳異常 !", "text/plain"); }
(注:在這裡上傳檔案有個問題,就是asp.net預設的最大上傳檔案是4M,執行超時為90s。解決這個問題我的方法是:修改web.config檔案改預設值,新增這樣一段程式碼:
<configuration> <system.web> <httpRuntime maxRequestLength="1048576" executionTimeout="3600" /> </system.web> <configuration>
更多解決辦法可見:http://www.cnblogs.com/akwwl/p/3573666.html
)二,實現APK檔案的下載
在ASP.net中直接把.apk檔案放到/Upload/App路徑下,然後釋出完了以後,通過http://xxx/Upload/App/xx.apk是訪問不了的。解決思路:將asp.net mvc路由忽略.apk檔案請求URL對映
具體方法:
在web.config中:
<configuration>
<configSections>
...
<section name="rewriter" requirePermission="false" type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter" /><!--加入此行-->
</configSections>
...
<system.web>
<httpModules>
<add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter" /><!--加入此行-->
</httpModules>
...
</system.web>
</configuration>
在App_Start/RouteConfig.cs檔案中
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("{resource}.apk");// 加入此行
...
}
}
在IIS中配置MIME檔案對映
執行->inetmgr
點確定
點中間的:MIME型別
輸入需要配置的引數就可以了