![](/img/trans.png)
[英]What is the best way to upload 3+ GB files to Azure Blob Storage from ASP.Net MVC?
[英]what is the best way to store pdf files in sql server from an asp.net mvc 2 application?
我正在尝试将pdf文件存储在sql服务器中。 我正在使用带有SQL Server的ASP.NET MVC 2应用程序? 您能告诉我一些代码示例链接吗?
答案很大程度上取决于您使用什么技术来访问此SQL Server,是否使用ORM等。由于您的问题中未提供任何此类信息,因此让我举例说明如何执行此操作使用纯ADO.NET。
您可以从以下表格开始:
<% using (Html.BeginForm("Index", "Home", FormMethod.Post, new { enctype = "multipart/form-data" })) { %>
<label for="file">Select a pdf file:</label>
<input type="file" name="file" id="file" />
<input type="submit" value="Upload" />
<% } %>
以及处理此表单提交的控制器操作:
[HttpPost]
public ActionResult Index(HttpPostedFileBase file)
{
if (file != null && file.ContentLength > 0)
{
var fileName = Path.GetFileName(file.FileName);
var extension = Path.GetExtension(fileName);
var document = new byte[file.InputStream.Length];
file.InputStream.Read(document, 0, document.Length);
if (string.Equals(".pdf", extension, StringComparison.OrdinalIgnoreCase))
{
using (var conn = new SqlConnection(SomeConnectionString))
using (var cmd = conn.CreateCommand())
{
conn.Open();
cmd.CommandText = "INSERT INTO Documents (document) VALUES (@document);";
cmd.Parameters.Add("@document", SqlDbType.Binary, 20).Value = document;
cmd.ExecuteNonQuery();
}
}
}
return View();
}
当然,应该将SQL部分外部化到一个单独的存储库中,以避免使用此类代码使控制器操作混乱。 另外,如果您使用的是SQL Server 2008,则可以看看新的FILESTREAM类型 ,它更适合这种情况。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.