从ASP.NET MVC应用程序上载ePub文件

时间:2010-11-02 09:47:26

标签: c# sql asp.net-mvc file-upload epub

目前,我正在将PDF文件和图像从我的MVC Web应用程序上传到sql server数据库。这非常有效,但我现在希望能够上传ePub文件。

我尝试使用相同的上传器,但是徒劳地希望它能够正常工作,但这是我得到的错误:

  

用户未处理SqlException   代码。

     

“参数化查询   '(@ FileContent varbinary(max)   ,@ MimeType nvarchar(4000),@ FileName'   期望参数'@MimeType',   没有提供。

以下是我的控制器处理上传的代码:

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文件格式。

非常感谢任何帮助:)

2 个答案:

答案 0 :(得分:0)

将ePUB作为已知类型添加到服务器的Mime类型列表中,我猜mime-type将变为db,这就是为什么会出现此错误的原因。

答案 1 :(得分:0)

发现epub文件的mimetype是application / epub + zip。在我的应用程序中指定了这个,而不是从用户那里得到它,这似乎已经成功了。文件上传和下载没有任何问题。

感谢任何评论过的人:)