每个人,
我正在尝试将图像上传到我的网站,并且我已经成功地让它工作,但是,我需要将功能扩展到一张简单的图像之外。我看到的示例使用 WebMatrix 文件助手(文件助手?是吗?哦,它是某种自动绘制 input=type"file" 字段所需的 html 的助手)。我在表单中的代码行:
@FileUpload.GetHtml(initialNumberOfFiles:1, allowMoreFilesToBeAdded:false, includeFormTag:false)
我在(IsPost)中的代码行:
var UploadedPicture = Request.Files[0];
if(Path.GetFileName(UploadedPicture.FileName) != String.Empty)
{
var ContentType = UploadedPicture.ContentType;
var ContentLength = UploadedPicture.ContentLength;
var InputStream = UploadedPicture.InputStream;
Session["gMugshot"] = new byte[ContentLength];
InputStream.Read((byte[])Session["gMugshot"], 0, ContentLength);
}
else
{
Session["gMugshot"] = new byte[0];
}
之后(IsPost)中的更多代码将其作为二进制数据存储在数据库中,我可以从中获取页面上的图像(我不想将实际图像文件保存在服务器上的文件夹中并使用 GUID等。二进制数据很好,我想占用的空间要少得多)。
我将它设置为通过使用 jQuery 读取手动创建的按钮的点击,然后隐藏和取消隐藏包含由 C# 呈现的图像的 div(从读取数据库中获取它们),从而可以点击滚动浏览图片。抱歉,如果这有点 TMI,只是想彻底,但要细化问题:我对文件上传知之甚少,不知道如何很好地处理上传的数据。我尝试研究这些信息,但没有找到任何与我相关的信息(实际上,我没有找到关于 input type="file" 或 FileUpload 方法的有用信息,真的)。
使用 input type="file" id="pic1id" 会更好吗?有没有我可以使用的东西,例如 Request.Files["pic1id"] 可以从输入元素的 id 获取文件?或者该程序是否只是简单地获取所有上传的文件,将它们放在一个等待被索引调用的逻辑组中,如下所示:“Request.Files [0]”。如果是这样,索引的顺序是什么?在开始处理数据之前,我是否需要使用 Request.Files.Count 来测试已上传的数量?
请注意,我想要单独的输入 type="file" 字段(无论是否由助手绘制)。我不想在一个输入中接受多个文件(主要是因为缺乏知识,例如,我担心我不会知道如何处理数据)。到目前为止,计划是单独的输入 type="file" 字段将在滚动图片时隐藏/取消隐藏的 div 中,因此每张图片(空间)都有自己的输入 type="file" 字段。div 的隐藏和取消隐藏、显示的(一张)图片、从数据库存储和接收二进制数据以及单击图片占位符都非常有用。几乎我只需要知道如何一次处理多个上传的图片,以便存储在他们各自的数据库“图像”字段中。
我需要使用的任何语法示例将不胜感激。
抱歉,有这么多问题,但我根本找不到太多有用的信息。
感谢任何试图提供帮助的人!