`
lingyibin
  • 浏览: 196398 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

做项目时遇到的几个关于C#和SQL的细节问题(二)

    博客分类:
  • .Net
阅读更多

6、js中的中文显示到页面上时,一般都会乱码,解决办法:

<script type="text/javascript" src="myjs.js" charset="gb2312"></script>

就是在引用 的时候加上charset。gb2312如果不行,可以换用其它的试试,如:utf-8等

7、储存上传的文件时,为了减少各种可能的冲突,最好是用当前时间(精确到分或秒)加上用户的id生成一个新的文件名,再在数据库中存储原文件名和新文件名。

8、图片上传。

有时候用户上传的图片会很大,假设我们已经设了能上传的图片最大是2M,那么用户可能大部分都传1M多的图片,这样的话,如果加载的图片多了,页面打开就会很慢。一个解决办法是把上传的图片压缩成位图。我自己封装了一个函数,以后做项目可以用得上:

 

    /// <summary>
    /// 压缩保存文件
    /// </summary>
    /// <param name="fileUpload">System.Web.UI.WebControls.FileUpload组件</param>
    /// <param name="filter">用于过滤字符串,如string[] allowExtensions = { "bmp", "jpg", "jpeg", "png", "gif", "tiff" };</param>
    /// <param name="fileSize">文件不能超过这个大小,单位byte</param>
    /// <param name="webpath">图片储存的文件夹路径!别以'/'结尾!</param>
    /// <param name="userId">用户名,用于重命文件名</param>
    /// <returns>新的文件名</returns>
    public string SaveSmallUploadFile(System.Web.UI.WebControls.FileUpload fileUpload, string[] filter,int fileSize, string webpath, int userId,int width,int height)
    {
        string filename = fileUpload.FileName;
        string newext;

        //文件大小
        int length = fileUpload.PostedFile.ContentLength;
        if (CheckFileFilter(filename, filter, out newext))
            throw new Exception("上传的文件格式不正确!");
        else if(length >= fileSize)
        {
            throw new Exception("上传的文件太大,文件大小必须小于"+fileSize/1000);
        }

        string path = System.Web.HttpContext.Current.Server.MapPath(webpath);

        if (!System.IO.Directory.Exists(path))
        {
            System.IO.Directory.CreateDirectory(path);
        }

            filename = GetNameWithDate() + "_" + userId + "." + newext;
            string str = System.Web.HttpContext.Current.Server.MapPath(webpath +"\\"+ filename + "_bak." + newext);
            fileUpload.SaveAs(str);

            //创建一个bitmap类型的bmp变量来读取文件。
            System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(str);

            //新建第二个bitmap类型的bmp2变量,我这里是根据我的程序需要设置的。
            System.Drawing.Bitmap bmpNew = new System.Drawing.Bitmap(width, height, System.Drawing.Imaging.PixelFormat.Format16bppRgb555);

            //将第一个bmp拷贝到bmp2中
            System.Drawing.Graphics draw = System.Drawing.Graphics.FromImage(bmpNew);
            //设置背景透明,当然也可以设成其它颜色
            draw.Clear(System.Drawing.Color.Transparent);
            draw.DrawImage(bmp, 0, 0, width, height);
            filename = filename.Substring(0,filename.LastIndexOf(".")) + ".jpg";//可以在这里改新文件的格式,这里改了,下面的下面这句也要改
            string filePath = webpath + "/" + filename; 
            bmpNew.Save(System.Web.HttpContext.Current.Server.MapPath(filePath), System.Drawing.Imaging.ImageFormat.Jpeg);

            draw.Dispose();
            bmp.Dispose();//释放bmp文件资源

            FileInfo file = new FileInfo(str);
            if (file.Exists) file.Delete();

        return filename;
    }
    /// <summary>
    /// 将当前时间形成字符串以用作文件名
    /// </summary>
    /// <returns></returns>
    public static string GetNameWithDate()
    {
        return DateTime.Now.ToString("yyMMddhhmmssfff");
    }
/// <summary>
    /// 检查文件后缀是否与filter中匹配
    /// </summary>
    /// <param name="filename">文件名称</param>
    /// <param name="filter">匹配类型</param>
    /// <returns></returns>
    private static bool CheckFileFilter(string filename, string[] filter, out string ext)
    {
        bool isFilter = true;
        int i = filename.LastIndexOf(".");
        ext = filename.Substring(i + 1).ToLower();
        if (filter != null)
        {
            for (i = 0; i < filter.Length; i++)
            {
                if (ext == filter[i].ToLower())
                {
                    isFilter = false;
                    break;
                }
            }
        }
        return isFilter;
    }
0
0
分享到:
评论

相关推荐

    SQL格式化功能(C#代码)

    总的来说,这个C#实现的SQL格式化功能对于.NET开发者来说是一个实用的工具,它能够提高SQL代码的可读性,降低维护成本,同时避免了引入额外的依赖库,简化了项目的构建和部署流程。在团队合作和大型项目中,这样的...

    C# 图书馆管理系统 SQL 服务器

    总结起来,这个C#图书馆管理系统结合了C#强大的编程能力和SQL Server高效的数据管理能力,提供了全面的图书和读者管理服务。通过良好的设计和实现,系统不仅满足了基本的图书借阅需求,还具备了良好的可扩展性和维护...

    .net框架C#开发QQ项目

    这个PPT可能涵盖了项目背景、设计决策、技术实现细节以及可能遇到的问题和解决方案。 综合以上信息,我们可以预期这个QQ项目可能包含以下几个关键知识点: 1. **.NET框架**:理解.NET框架的架构,包括CLR(Common ...

    用C#实现SQL安装挂起清除工具

    在IT领域,尤其是在数据库管理中,SQL Server的安装过程可能会遇到一些问题,比如安装挂起。这通常是由于网络中断、资源不足或者系统错误导致的。为了解决这个问题,开发者经常需要编写专用工具来处理这些挂起的安装...

    C# sql listbox写入txt文本

    在开始之前,我们需要对以下几个概念有一定的了解: 1. **ListBox 控件**:ListBox 是 Windows Forms 应用程序中常用的一种控件,用于显示项目列表。用户可以选择列表中的一个或多个项目。 2. **文件系统操作**:...

    宾馆管理系统c#项目源代码

    同时,错误处理和日志记录也是必不可少的部分,以确保系统在遇到问题时能够提供有效的反馈和调试信息。 总的来说,这款宾馆管理系统C#项目源代码展示了如何利用C#语言和相关技术构建一个功能完善的管理工具。通过...

    C#学生信息管理系统(有源码跟实验报告)

    7. 源码和实验报告:提供源码意味着用户可以查看和学习系统的实现细节,而实验报告通常会详细记录设计思路、技术选型、遇到的问题及解决方法,是学习和评估项目的重要参考。 综上所述,【C#学生信息管理系统】是一...

    自己做的 C#图书馆管理系统,含数据库文件及源代码

    综合以上信息,这个项目涵盖了以下几个C#编程和图书馆管理系统的知识点: 1. **C#基础**:包括类、对象、方法、事件、属性、继承、多态等面向对象编程概念。 2. **数据库连接与操作**:利用ADO.NET或Entity ...

    C# ASP.NET - 实现“百度知道”简单范例

    在本项目中,我们将深入探讨如何使用C#和ASP.NET技术来实现一个类似于“百度知道”的在线问答平台。这个平台的核心功能包括用户管理、问题发布、答案提交、问题关闭、最佳答案选择、悬赏机制以及搜索功能。让我们...

    一个很有用的C#药店管理系统

    综上所述,这个C#药店管理系统结合了C#的强大功能和数据库的高效数据处理,实现了药店业务流程的自动化,提升了药店管理的效率和准确性。对于学习C#编程或者药店管理系统的开发者来说,这份源代码是一个宝贵的参考...

    C#开发的简单的图书管理系统代码

    此外,为了提高用户体验,我们还可以实现一些额外的功能,如错误处理和异常处理,确保在遇到问题时能给出适当的提示;或者使用验证控件,确保用户输入的数据格式正确。同时,考虑到性能,可以采用分页查询技术,避免...

    试题库管理系统的设计(C#)

    【标题】"试题库管理系统的设计(C#)"是一个关于利用C#编程语言开发的全面的试题库管理系统的项目。这个系统旨在高效地存储、管理和检索各类考试试题,为教育机构或个人提供便捷的试题资源管理解决方案。 【描述】...

    学生考试管理系统 C#实现

    学生考试管理系统的核心功能通常包括以下几个方面: 1. 学生管理:系统应能进行学生信息的录入、修改、查询等操作,包括姓名、学号、班级等关键信息的管理。 2. 考试安排:管理考试的时间、地点、科目等信息,并...

    蜘蛛程序for c#

    在C#中实现一个蜘蛛程序,主要涉及到以下几个关键知识点: 1. **HTTP请求与响应**:网络爬虫首先需要向目标网站发送HTTP请求,获取服务器返回的HTML响应。这通常使用`System.Net.Http.HttpClient`类来完成。你需要...

    c#电子邮件收发系统

    使用C#发送电子邮件涉及以下几个步骤: - 创建MailMessage对象,设置发件人、收件人、抄送人、密送人、邮件主题和正文。 - 如果需要添加附件,可以使用Attachment类创建附件对象并添加到MailMessage的Attachments...

    毕业答辩-ASP.NETSQL蒋和平_办公自动化管理系统的设计与实现(源代码论文).rar

    【标题】"毕业答辩-ASP.NET SQL蒋和平_办公自动化管理系统的设计与实现(源代码论文).rar" 提供了一个关于毕业设计项目的详细资料,其中涵盖了ASP.NET技术和SQL数据库在构建办公自动化管理系统中的应用。这个系统旨在...

    用C#生成安装程序

    创建安装程序的过程主要包括以下几个步骤: 1. **选择合适的工具**:可以使用Inno Setup、NSIS或WiX等工具来创建安装程序。这些工具提供了丰富的功能和选项,可以根据需求进行选择。 2. **准备安装目录**: - 将您...

    仿百度知道(C#).rar

    项目的核心知识点主要集中在以下几个方面: 1. **C#编程基础**:这是整个项目的基础,包括变量、数据类型、控制结构、函数、类和对象等概念。开发者需要运用这些基础知识来编写程序的各个模块。 2. **ASP.NET Web...

    课程设计-基于C#的日记本系统(源码+报告).zip

    5. **错误处理和异常安全**:源码中应包含适当的错误处理代码,确保程序在遇到问题时能够优雅地处理,防止程序崩溃。 6. **事件驱动编程**:C#的事件和委托机制使得用户界面的交互更加直观,例如点击按钮触发相应的...

    汽车租借管理系统 + 编程 + C#

    本文将深入探讨如何利用C#编程语言来构建这样一个系统,并重点关注其核心功能和实现细节。 首先,C#是一种面向对象的编程语言,由微软公司开发,广泛应用于Windows平台的软件开发,尤其在.NET框架下表现出强大的...

Global site tag (gtag.js) - Google Analytics