C# 从ASP.NET MVC应用程序上载ePub文件
目前,我正在将PDF文件和图像从MVC web应用程序上载到sql server数据库。这是完美的作品,但我现在想能够上传ePub文件 我试着用同一个上传程序来做,但徒劳地希望它能起作用,然而这是我得到的错误: 用户未处理SqlException 代码 参数化查询 “@FileContent varbinarymax ,@MimeType nvarch4000,@FileName' 需要参数“@MimeType”, 没有提供 下面是我的控制器处理上传的代码:C# 从ASP.NET MVC应用程序上载ePub文件,c#,sql,asp.net-mvc,file-upload,epub,C#,Sql,Asp.net Mvc,File Upload,Epub,目前,我正在将PDF文件和图像从MVC web应用程序上载到sql server数据库。这是完美的作品,但我现在想能够上传ePub文件 我试着用同一个上传程序来做,但徒劳地希望它能起作用,然而这是我得到的错误: 用户未处理SqlException 代码 参数化查询 “@FileContent varbinarymax ,@MimeType nvarch4000,@FileName' 需要参数“@MimeType”, 没有提供 下面是我的控制器处理上传的代码: public ActionResul
public ActionResult Index()
{
foreach (string upload in Request.Files)
{
if (!Request.Files[upload].HasFile1()) continue;
string mimeType = Request.Files[upload].ContentType;
Stream fileStream = Request.Files[upload].InputStream;
string fileName = Path.GetFileName(Request.Files[upload].FileName);
int fileLength = Request.Files[upload].ContentLength;
byte[] fileData = new byte[fileLength];
fileStream.Read(fileData, 0, fileLength);
const string connect = @"Server=localhost;Database=Images;user id=taraw; password=****;";
using (var conn = new SqlConnection(connect))
{
var qry = "INSERT INTO FileStore (FileContent, MimeType, FileName) VALUES (@FileContent, @MimeType, @FileName)";
var cmd = new SqlCommand(qry, conn);
cmd.Parameters.AddWithValue("@FileContent", fileData);
cmd.Parameters.AddWithValue("@MimeType", mimeType);
cmd.Parameters.AddWithValue("@FileName", fileName);
conn.Open();
cmd.ExecuteNonQuery();
}
}
return View();
}
我知道这个错误对于问题是什么是不言自明的,我只是不确定如何修改代码以允许它接受ePub文件格式
任何帮助都将不胜感激:将ePUB作为已知类型添加到服务器的Mime类型列表中,我猜Mime类型将在db中变为null,这就是引发此错误的原因 发现epub文件的mimetype是application/epub+zip。在我的应用程序中指定了这一点,而不是期望用户这样做,这似乎已经做到了。文件正在上载和下载,没有任何问题
感谢所有发表评论的人:顺便说一句,在Request.Files上迭代不是ASP.NET MVC的方法。您应该使用处理文件上载的内置模型绑定工具。否则,您将遇到可移植性和可测试性问题。我从一个教程中了解到了这一点,但我确实意识到还有很大的改进空间。asp.net/mvc上的教程非常棒。我猜你用的那个不是从那里来的嗨,玛扎!谢谢你的回复。目前我正在本地使用笔记本电脑。您知道如何配置visual studio的设置以接受ePub作为mime类型吗?@Mazhar在代码中,mime类型由客户端在Request.Files[upload].ContentType中提供。您的建议需要进行一些重大的重构。@Tara问题在于客户端未提供mime类型,或者上载的文件已损坏或以其他方式丢失信息。您不应该依赖客户端来提供mime类型,因为这可能因浏览器而异。@blzm,这是链接。不,教程不是从那里开始的;-我将看一看:不确定他们是否可能解决我的ePub问题:-S我只是不确定如何处理这种文件类型。