我在将文件上传到数据库时遇到了一些问题。我将在下面发布我的代码片段。
我上传的表格具有以下结构:
[IDEnsayo] int NOT NULL,
[Nombre] varchar(256) NULL,
[Tipo] varchar(256) NULL,
[Longitud] int NULL,
[Contenido] image NULL
这是班级
public class Archivo
{
public string Nombre { get; set; }
public string Tipo { get; set; }
public long Longitud { get; set; }
public byte[] Contenido { get; set; }
}
我可以使用我的应用程序上传文件而没有任何错误,但是在数据库中,文件存储在" Contenido" as" 0x0000000000000000 ......"。与文件相关的所有其他信息都正确上传。
这是我的控制器代码:
public ActionResult Add(Ensayo Ensayo, HttpPostedFileBase uploadFile)
{
var ensayo = new Ensayo { IDEnsayo = Ensayo.IDEnsayo};
ensayo.Archivo.Longitud = uploadFile.ContentLength;
ensayo.Archivo.Nombre = uploadFile.FileName;
ensayo.Archivo.Tipo = uploadFile.ContentType;
byte[] tempFile = new byte[uploadFile.ContentLength];
uploadFile.InputStream.Read(tempFile, 0, uploadFile.ContentLength);
ensayo.Archivo.Contenido = tempFile;
ensayo.SaveArchivo();
//
其他注意事项:
的更新 的
使用IE9可以正常工作,但Chrome却没有。
这是我的提交表单代码:
@using (Html.BeginForm("Add", "Archivos",FormMethod.Post, new { id = "attachment", enctype = "multipart/form-data" }))
{
@Html.HiddenFor(x => Model.IDEnsayo)
<input type="file" name="uploadFile" id="uploadFile" />
<input type="submit" value="Guardar" class="t-button"/>
}
如果有人可以提供帮助/建议,我会很感激。
感谢。
答案 0 :(得分:0)
根据您的上一条评论,您的文件上传问题很可能与IIS6有关,实际上与SQL服务器无关。如果尚未正确配置IIS6,则IIS6具有愚蠢的文件上载大小限制。
请查看:Increase file upload size limit in iis6
更具体地针对您的情况:http://www.banmanpro.com/support2/File_Upload_limits.asp
答案 1 :(得分:0)
问题是Chrome的版本(21.0.1171.0 DEV)。 Chrome的开发版本和使用Windows身份验证和上传文件的IIS6存在问题。
如果您使用Chrome 21 dev提交表单,则提交的文件内容将全部为零。
我下载了 19.0.1084.56 m 稳定版,问题解决了。
了解更多信息http://code.google.com/p/chromium/issues/detail?id=128574