Image 在哪里保存HTML和图像?

Image 在哪里保存HTML和图像?,image,winforms-to-web,Image,Winforms To Web,我有一个项目,该公司的用户将使用winform HTML编辑器为特定客户输入一些文本和图片。客户将在网站上查看此信息 最好的处理方法是什么?如果它是严格的HTML文本,那么我可以保存数据库中的所有内容,并且不会出现任何显示问题。但是员工想要展示图片的能力 我是否在公共场所将图片保存为文件,以便网站和winform程序可以看到?这里的问题是哪里是存放照片的最佳公共场所。Web服务器将是一个锁定的服务器,没有人可以访问。我可以从ASP.Net的非本地目录获取文件吗 我是否将图片保存在数据库中,并使

我有一个项目,该公司的用户将使用winform HTML编辑器为特定客户输入一些文本和图片。客户将在网站上查看此信息

最好的处理方法是什么?如果它是严格的HTML文本,那么我可以保存数据库中的所有内容,并且不会出现任何显示问题。但是员工想要展示图片的能力


  • 我是否在公共场所将图片保存为文件,以便网站和winform程序可以看到?这里的问题是哪里是存放照片的最佳公共场所。Web服务器将是一个锁定的服务器,没有人可以访问。我可以从ASP.Net的非本地目录获取文件吗

  • 我是否将图片保存在数据库中,并使程序足够智能,以便用数据库中的图片替换图像源标记?我认为这可能会变得困难(当然是在网络上……如果有人建议这样做,你能给我一些在winform和web上如何做到这一点的C#示例吗?)

  • 我知道有人在某个地方做了这件事并且成功了

  • 是的,如果您不打算限制对这些图像的访问。若您这样做了,请将它们存储在远离www根目录的位置,并通过脚本发送到浏览器

  • 不可以。最好将图像存储在光盘上,并将其相对路径存储在DB中。数据库不是存储文件的正确位置

  • 是的,如果您不打算限制对这些图像的访问。若您这样做了,请将它们存储在远离www根目录的位置,并通过脚本发送到浏览器

  • 不可以。最好将图像存储在光盘上,并将其相对路径存储在DB中。数据库不是存储文件的正确位置

  • 请看这个

    还有其他关于这个主题的老问题。在我看来,任何一种选择都是可能和合法的,两者的结合也是如此(将文件引用存储在数据库中)。您应该根据项目中的具体情况做出决定(您没有提供),例如

    • 预期的图像/文件数
    • 关于存储blob,您将使用的特定数据库的功能和性能注意事项
      • 请看这个

        还有其他关于这个主题的老问题。在我看来,任何一种选择都是可能和合法的,两者的结合也是如此(将文件引用存储在数据库中)。您应该根据项目中的具体情况做出决定(您没有提供),例如

        • 预期的图像/文件数
        • 关于存储blob,您将使用的特定数据库的功能和性能注意事项

        您可以轻松地将图像存储在数据库中,然后检索它们。要显示数据库中的图像,可以使用asp.net页面(请参见此)或

        您还可以将文件存储在本地文件夹中。可以使用常规的读/写文件操作。为此,ASP.NET用户([本地计算机]\ASPNET或网络服务)需要对该文件夹具有读/写权限。要使用远程文件夹,事情更多,您可能会在尝试这样做时创建一个安全漏洞


        作为结论,我认为最好的解决方案是使用本地文件夹。如果这不可能,请避免使用外来解决方案(FTP、用户模拟、上载/加载图像的web服务)并使用数据库。

        您可以轻松地将图像存储在数据库中,然后检索它们。要显示数据库中的图像,可以使用asp.net页面(请参见此)或

        您还可以将文件存储在本地文件夹中。可以使用常规的读/写文件操作。为此,ASP.NET用户([本地计算机]\ASPNET或网络服务)需要对该文件夹具有读/写权限。要使用远程文件夹,事情更多,您可能会在尝试这样做时创建一个安全漏洞


        作为结论,我认为最好的解决方案是使用本地文件夹。如果这不可能,请避免使用外来解决方案(FTP、用户模拟、上载/加载图像的web服务)并使用数据库。

        我建议使用数据库存储本地图像的路径(如果在您的设置中可能)

        例如,物理图像将保存在如下路径中:

        /App_Themes/Web/images/userfiles/YOURIMAGENAME.jpg
        
        <asp:Image ID="imgImage" runat="sever" />
        
        protected void Page_Load(object sender, EventArgs e)
        {
            //Your data-access code here
        
            //image.ImageName is provided by your data access code.
            imgImage.ImageUrl = string.Format("/App_Themes/Web/images/userfiles/{0}", image.ImageName)
        }
        
        然后将以下内容保存到数据库中

        YOURIMAGENAME.jpg
        
        这意味着您可能会遇到如下情况:

        /App_Themes/Web/images/userfiles/YOURIMAGENAME.jpg
        
        <asp:Image ID="imgImage" runat="sever" />
        
        protected void Page_Load(object sender, EventArgs e)
        {
            //Your data-access code here
        
            //image.ImageName is provided by your data access code.
            imgImage.ImageUrl = string.Format("/App_Themes/Web/images/userfiles/{0}", image.ImageName)
        }
        
        
        受保护的无效页面加载(对象发送方、事件参数e)
        {
        //这里是您的数据访问代码
        //image.ImageName由您的数据访问代码提供。
        imgImage.ImageUrl=string.Format(“/App_Themes/Web/images/userfiles/{0}”,image.ImageName)
        }
        
        我建议使用数据库存储本地映像的路径(如果在您的设置中可能)

        例如,物理图像将保存在如下路径中:

        /App_Themes/Web/images/userfiles/YOURIMAGENAME.jpg
        
        <asp:Image ID="imgImage" runat="sever" />
        
        protected void Page_Load(object sender, EventArgs e)
        {
            //Your data-access code here
        
            //image.ImageName is provided by your data access code.
            imgImage.ImageUrl = string.Format("/App_Themes/Web/images/userfiles/{0}", image.ImageName)
        }
        
        然后将以下内容保存到数据库中

        YOURIMAGENAME.jpg
        
        这意味着您可能会遇到如下情况:

        /App_Themes/Web/images/userfiles/YOURIMAGENAME.jpg
        
        <asp:Image ID="imgImage" runat="sever" />
        
        protected void Page_Load(object sender, EventArgs e)
        {
            //Your data-access code here
        
            //image.ImageName is provided by your data access code.
            imgImage.ImageUrl = string.Format("/App_Themes/Web/images/userfiles/{0}", image.ImageName)
        }
        
        
        受保护的无效页面加载(对象发送方、事件参数e)
        {
        //这里是您的数据访问代码
        //image.ImageName由您的数据访问代码提供。
        imgImage.ImageUrl=string.Format(“/App_Themes/Web/images/userfiles/{0}”,image.ImageName)
        }
        
        < /代码> 如果使用文件系统是不可能的,考虑将您的图像存储在云存储中,例如

        您可以配置S3对象,使其为公共读取而非私有写入,这样只有您的软件才能将图像添加到S3,但web上的任何人都可以查看它们。根据您的安全要求,您可以在WinForms应用程序中对S3密钥进行编码以构建PUT URL,也可以在应用程序服务器上创建一个简单的web服务,用于验证用户身份并使用服务器上的密钥创建PUT URL。然后可以将PUT URL返回给客户端,客户端可以用来上传图像数据

        使用S3,然后使用HTTP上传图像