【问题标题】:Save image name or path into database将图像名称或路径保存到数据库中
【发布时间】:2012-07-09 20:02:55
【问题描述】:

我正在使用 ASP.NET 和 SQL Server 为公司的员工做一个 Intranet,在个人资料部分我有一个上传图片区域(显示图片的图像字段,用于选择文件的输入和加载按钮),这工作正常,图片正在加载到一个文件夹中,但是,我也有用户添加他的信息的文本字段,这也很好,正在保存到数据库中,现在我想做的是用户上传图片,并在单击提交按钮时完成所有文本字段以将所有字段发送到数据库他上传的图片的名称或路径也进入数据库,我所有的文本字段都被保存使用带有 insertParameters 的 sqlDataSource。

知道怎么做吗?我更喜欢用前端代码来做,因为在后面的代码上我只是初始化了 SqlDataSource1.Insert();

【问题讨论】:

标签: asp.net sql sql-server image-uploading


【解决方案1】:

不要将图像保存到磁盘,这样做迟早会导致丑陋的混乱。 您应该做的是允许用户上传图像,在服务器上调整/裁剪图像,将图像转换为 base64 并将 base64 字符串保存到 varchar(max) 列中。

因为您只保存小图像(头像),所以此解决方案应该可以正常工作。 此外,当您从数据库中取回图像 base64 字符串时,如果不需要 IE7,您可以将其直接嵌入到 HTML 中。以下是支持Data URI scheme的浏览器列表

如果无法将 base64 嵌入到 HTML 中,请创建一个 ASP.NET 页面,将 base64 字符串解码为图像并返回二进制响应。然后像这样在您的页面中使用它:

<img src="http://www.example.com/images.aspx?thimageDBrowID=12345" width="20" height="20"/>

【讨论】:

  • 说实话,我不明白你的回答!并且图像不小,是普通图片,但是我在保存图像时的代码将其调整为更小的尺寸(160x120)并保存这个小版本并保留大版本
  • 160x120 是一个小图像。大图为 4000x2500。为什么要保存大的?...无论如何,我的答案是按原样提供的。我无法远程为您编写代码。多读几遍答案,如果您有特定的问题,请不要犹豫。
  • 160x120 是头像尺寸,我保存大的(尺寸如,idk,数码相机常规尺寸),因为可以在项目的其他部分使用
  • 好的,没问题。将头像存储在数据库中并将原件转储到磁盘以供将来使用。
  • 这可能是一个解决方案,但我不知道如何从执行此操作的方法中获取调整大小的图像并将其保存到将其余字段保存到数据库中的方法中
【解决方案2】:

如果您使用的是 SQL Server 2008,您可以考虑使用 FILESTREAM

【讨论】:

    猜你喜欢
    • 2021-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-18
    • 2019-02-19
    • 2015-07-17
    • 1970-01-01
    • 2013-11-26
    相关资源
    最近更新 更多