c#如何将图片保存到mysql数据库,再读取出来

c#如何将图片保存到mysql数据库,再读取出来,第1张

直接将以二进制流的方式写入到mysql数据库中,由于数据量大,必然会导致服务器的数据库负载很大

我的建议: 采取将存储在物理磁盘 将相对路径存储在数据库中 这样会减小数据库负载

附上  "上传" 代码:

        /// <summary>

        /// 上传

        /// </summary>

        /// <param name="files">文件框名称</param>

        /// <param name="paths">上传文件路径,url</param>

        /// <param name="fmax">文件的最大值,单位为字节</param>

        /// <param name="ftype">类型:1表示;0表示所有文件</param>

        /// <returns></returns>

        public static string upfiles(SystemWebUIHtmlControlsHtmlInputFile files, string paths, long fmax, string ftype)

        {

            //files 文件上传组件的名称;paths 要上传到的目录;fmax是上传文件最大值;ftype是上传文件的类型

            //默认上传文件最大值100k,文件类型为所有文件

            //1为jpg or gif;0为所有文件

            //如果文件大于设定值,返回代码0

            //如果文件类型错误,返回代码1

            //初始化

            long fileMax = 100000;

            string fileType = "0";

            string fileTypet = "";

            fileMax = fmax;

            fileType = ftype;

            if (filesPostedFileContentLength > fileMax)

            {

                return "0";

                //返回错误代码,结束程序

            }

            fileTypet = SystemIOPathGetExtension(filesPostedFileFileName)ToLower();

            if (fileType == "1")

            {

                if (fileTypet != "jpg" && fileTypet != "jpeg" && fileTypet != "gif")

                {

                    return "1";

                    //返回错误代码,结束程序

                }

            }

            string destdir = SystemWeb>

数据库 *** 作部分:

package comdatabase;

import javaioInputStream;

import javasql;

/

  @作者 王建明

  @创建日期 13-10-7

  @创建时间 下午12:32

  @版本号 V 10

 /

public class DataBaseUtil {

public static InputStream getImageStreamFromDataBase() {

Connection conn = null;

try {

ClassforName("commysqljdbcDriver");

conn =

DriverManagergetConnection("jdbc:mysql://localhost/quickstart", "root", "123456");

Statement stmt = conncreateStatement();

String sql = "select book_image from tbl_book where id=1 ";

ResultSet rs = stmtexecuteQuery(sql);

if (rsnext()) {

return rsgetBinaryStream("book_image");

}

} catch (Exception e) {

Systemoutprintln("出现异常: " + egetMessage());

} finally {

try {

if (conn != null)

connclose();

} catch (SQLException e) {

eprintStackTrace();

}

}

return null;

}

}

servlet部分:

package comservlet;

import comdatabaseDataBaseUtil;

import javaxservletServletException;

import javaxservlet>}

webxml中的servlet配置:

    <servlet>

        <servlet-name>ShowImage</servlet-name>

        <servlet-class>comservletShowImage</servlet-class>

    </servlet>

    <servlet-mapping>

        <servlet-name>ShowImage</servlet-name>

        <url-pattern>/showImage</url-pattern>

    </servlet-mapping>

页面中加载方式:

<img src="showImage" />

希望对你有帮助O(∩_∩)O~

看你的表,不是保存在mysql数据库中,数据库中只是保存了的路径。想保存的数据库中必须定义字段为longblob类型如:`image` longblob ,然后

<

$connect = MYSQL_CONNECT( "localhost", "root", "admin") or die("Unable to connect to MySQL server"); 

mysql_select_db("blogsystem") or die("Unable to select database"); 

$data = addslashes(fread(fopen($form_data, "r"), filesize($form_data))); 

$result=MYSQL_QUERY( "INSERT INTO ccs_image (description,bin_data,filename,filesize,filetype) VALUES ('$form_description','$data','$form_data_name','$form_data_size','$form_data_type')");   

$id= mysql_insert_id();  

print "<p>This file has the following Database ID: <a href='get_dataphpid=$id'><b>$id</b></a>"; 

MYSQL_CLOSE(); 

>

上传的保存到哪里了?比如保存到C盘,数据库中应该存放的路径,然后输出到前台。或者上传,把存放到数据库中,用BLOB类型存放。

具体BLOB类型存取你可以查一下资料。

将本地数据库导入到服务器数据库的方法/步骤:

1、在本地和服务器都安装同样的数据库客户端,如oracle常用SQLPlus、MySQL常用HeiDisql或者navicat、mssql2005则常用SQLServerManagementStudio;

2、在本地通过数据库客户端导出数据库为sql文件;

3、将sql文件远程传递到服务器上;

4、在服务器上用相同的数据库客户端将sql文件执行一遍即可将本地数据库导入到服务器上。

用vchar存是可以的。但是首先对数据库的读/写的速度永远都赶不上文件系统处理的速度,其次数据库备份变的巨大,越来越耗时间,最后对文件的访问需要穿越你的应用层和数据库层。是数据库最大的杀手。还是存放一个url然后在调用吧!

反正,文件,二进制数这三样东西永远别存数据库。

以上就是关于c#如何将图片保存到mysql数据库,再读取出来全部的内容,包括:c#如何将图片保存到mysql数据库,再读取出来、读取保存在数据库里的图片JSP页面显示无法显示图片、怎么上传图片并插入MYSQL等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9804704.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存