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

这是我的代码,运行时显示语法出错是怎么回事啊?我是初学者,不太懂... 这是我的代码,运行时显示语法出错是怎么回事啊?我是初学者,不太懂 展开
 我来答
I乐于助人I
2014-10-21 · TA获得超过395个赞
知道小有建树答主
回答量:272
采纳率:100%
帮助的人:134万
展开全部

直接将图片以二进制流的方式写入到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(System.Web.UI.HtmlControls.HtmlInputFile 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 (files.PostedFile.ContentLength > fileMax)
            {
                return "0";
                //返回错误代码,结束程序
            }

            fileTypet = System.IO.Path.GetExtension(files.PostedFile.FileName).ToLower();
            if (fileType == "1")
            {
                if (fileTypet != ".jpg" && fileTypet != ".jpeg" && fileTypet != ".gif")
                {
                    return "1";
                    //返回错误代码,结束程序
                }
            }
            string destdir = System.Web.HttpContext.Current.Server.MapPath(paths);
            string filename = CFun.RandomWord() + fileTypet;
            string destpath = System.IO.Path.Combine(destdir, filename);

            //检查是否有名称重复,如果重复就在前面加从0开始的数字
            int i = 0;
            string tempfilename = filename;
            while (System.IO.File.Exists(destpath))
            {
                //有重复
                tempfilename = i.ToString() + filename;
                destpath = System.IO.Path.Combine(destdir, tempfilename);
                i = i + 1;
            }


            //没有重复,保存文件
            files.PostedFile.SaveAs(destpath);
            //返回文件名称
            return tempfilename;
        }
追问
没看懂,其实我只保存几张图片,对数据库影响应该不大的
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式